gpt4 book ai didi

annotations - Servlet 3.0 注释与 Guice 结合使用

转载 作者:行者123 更新时间:2023-12-04 16:10:27 25 4
gpt4 key购买 nike

我正在尝试更新旧的 Guice 应用程序,我想知道在考虑 Servlet 3.0 注释时是否有任何首选的做事方式。例如,我的应用程序有一个过滤器FooFilter,它是在Guice Module Factory方法configureServlets()中定义的,如下:

    Map<String, String> fooParams = new HashMap<String, String>();
fooParams.put("someParam", "parameter information");
filter("/foo.jsp","/foo/*").through(com.example.filter.FooFilter.class, fooParams);

上面的绑定(bind)是否仍然必要,或者它会干扰使用@WebFilter Servlet 3.0 注释的以下内容:
    @Singleton
@WebFilter(
filterName="FooFilter",
urlPatterns={"/foo.jsp", "/foo/*"},
initParams = {
@WebInitParam(name="foo", value="Hello "),
@WebInitParam(name="bar", value=" World!")
})
public class FooFilter implements Filter {
etc....

现在首选哪种方法?他们会互相纠缠吗?

最佳答案

我刚刚快速草拟了一个 Servlet 3.0 支持的样子。可能有一种更优雅的方式来调用 filter(Filter Class with WebFilter annotation)configureServlet方法,但这需要对 guice-servlet 的更新权限模块,很难分发。

嗯,我做的是 Github 上的一个项目:https://github.com/xbaran/guice-servlet3

您需要做的就是下载和构建。它是在 Guice 3.0 之上创建的,工作方式如下:

new Servlet3Module() {
@Override
protected void configureServlets3() {
scanFilters(FooFilter.class.getPackage());
}
};
Servlet3Module扩展 ServletModule并包含 scanFilters使用 package 的方法争论。此方法将从您的类路径中扫描提供的包并尝试注册所有带有注释 WebFilter 的类通过 filter()方法。

这个 scan想法基于 Sitebricks (由 Dhanji R. Prasanna 创建的guice web 框架)配置系统。

老实说,我只是做一个草稿,如果它有效,从不尝试。但希望它会。如果您有任何问题或疑问,请告诉我。

PS:如果您愿意,可以添加对 servlet、监听器等的支持。

关于annotations - Servlet 3.0 注释与 Guice 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19872236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com