UndertowServer.create(AppConfig.class)
.configWeb( builder -> {
// 配置 Filter
builder.addFilter("myFilter", "com.abc.MyFilter");
builder.addFilterUrlMapping("myFilter", "/*");
builder.addFilterInitParam("myFilter", "key", "value");
// 配置 Servlet
builder.addServlet("myServlet", "com.abc.MyServlet");
builder.addServletMapping("myServlet", "*.do");
builder.addServletInitParam("myServlet", "key", "value");
// 配置 Listener
builder.addListener("com.abc.MyListener");
// 配置 WebSocket,MyWebSocket 需使用 ServerEndpoint 注解
builder.addWebSocketEndpoint("com.abc.MyWebSocket");
})
.start();
以上JFinal文档中关于undertow配置Filter,Listener的写法,想了解一下,如果项目正式部署时是读取的配置文件,比如undertow.txt,哪有办法将这些东西像传统的web.xml一样配置到配置文件中吗?
比如集成一些第三方框架,原生的方法就是在web.xml中加入这样框架的过滤器,拦截器等。如果使用undertow,自然也要将这些内容添加进来。不过如果都是写在代码里,感觉有点繁琐。
但你可以通过 jfinal undertow 提供的 PropExt 或者 jfinal 自带的 PropKit + Prop 来读配置文件,然后在 java 代码中使用
你还可以自已写读取 xml 的工具类来读 web.xml 让 undertow 使用
就好比 jfinal 借助 PropKit + Prop,可以使得配置文件可以在 YourJFinalConfig 中使用是一个道理