undertow是否支持配置文件配置Filter和Listener?

  1. UndertowServer.create(AppConfig.class)

  2.      .configWeb( builder -> {

  3.          // 配置 Filter

  4.          builder.addFilter("myFilter", "com.abc.MyFilter");

  5.          builder.addFilterUrlMapping("myFilter", "/*");

  6.          builder.addFilterInitParam("myFilter", "key", "value");

  7.          

  8.          // 配置 Servlet

  9.          builder.addServlet("myServlet", "com.abc.MyServlet");

  10.          builder.addServletMapping("myServlet", "*.do");

  11.          builder.addServletInitParam("myServlet", "key", "value");

  12.          

  13.          // 配置 Listener

  14.          builder.addListener("com.abc.MyListener");

  15.          

  16.          // 配置 WebSocket,MyWebSocket 需使用 ServerEndpoint 注解

  17.          builder.addWebSocketEndpoint("com.abc.MyWebSocket");

  18.       })

  19.      .start();

以上JFinal文档中关于undertow配置Filter,Listener的写法,想了解一下,如果项目正式部署时是读取的配置文件,比如undertow.txt,哪有办法将这些东西像传统的web.xml一样配置到配置文件中吗?

比如集成一些第三方框架,原生的方法就是在web.xml中加入这样框架的过滤器,拦截器等。如果使用undertow,自然也要将这些内容添加进来。不过如果都是写在代码里,感觉有点繁琐。


评论区

JFinal

2020-05-08 11:10

undertow 为嵌入式而生,应该是不支持配置文件方式来配置 Listener 等东西的

但你可以通过 jfinal undertow 提供的 PropExt 或者 jfinal 自带的 PropKit + Prop 来读配置文件,然后在 java 代码中使用

你还可以自已写读取 xml 的工具类来读 web.xml 让 undertow 使用

就好比 jfinal 借助 PropKit + Prop,可以使得配置文件可以在 YourJFinalConfig 中使用是一个道理

JFinal

2020-05-08 11:13

jfinal 的配置属于独创的 "API 引导式" 配置,目的是为了让你避免自己去记忆各种配置名称,因为 API 引导方式可以让 eclipse 自动提示你配置的名称(方法名的代码提示),还可以在 API 上通过注释告诉你配置的各种用法,免去学习成本

但有些配置必须要外部化,不能写在 java 代码中,因为可能需要常常去修改,所以 PropKit 就建立了配置文件与 API 引导式配置的桥梁

JFinal

2020-05-08 11:14

刚提到 jfinal 是独创的 "API 引导式" 配置, 所以,你再回看整个 jfinal ,没有一个地方是直接依赖于外部配置文件的,都是 setter 方法进行配置

弯道加速跑

2020-05-08 14:56

好的,谢谢波总,我根据你的提示尝试一下

热门反馈

扫码入社