java - 通过 Guice 将对象注入(inject) HttpSessionAttributeListener?

标签 java tomcat servlets dependency-injection guice

配置:Guice 1.0、Apache Tomcat 6.0

我目前正在使用以下方法将 Guice 模块中配置的对象手动注入(inject)到我的 servlet 中:

public void init( ServletConfig config ) throws ServletException
{
    super.init( config );
    ServletContext sc = config.getServletContext();
    Injector injector = (Injector) sc
        .getAttribute( Constants.Guice.INJECTOR_APP_CONTEXT_KEY );
    injector.injectMembers( this );
}

我怎样才能对 HttpSessionAttributeListener 做同样的事情(因为它没有任何生命周期方法)?

最佳答案

事件监听器是关于生命周期事件的。例如,attributeAdded() 在属性添加到 session 后立即调用,类似于 Servlet 的 init()。

将对象注入(inject) HttpSession 可能更有意义。在这种情况下,您需要在 HttpSessionListener.sessionCreated() 中执行此操作。

关于java - 通过 Guice 将对象注入(inject) HttpSessionAttributeListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1403990/

相关文章:

java - 如何在 JavaConfig 中设置 jsp-config

java - servlet 是单例吗?

java - 在 4.2.2 及更高版本的操作系统中获取 java.lang.NoSuchMethodError : android. os.FileUtils.getFatVolumeId

java - 找不到类 'com.google.android.chimera.Activity' ,从方法 mu.b 引用

java - 程序类型已存在: javax.inject.Named+transformDexArchiveWithExternalLibsDexMergerForDebug失败

angularjs - Ionic 应用程序的跨源资源共享问题

java - 在 Android 中膨胀 ListView 页脚的正确方法是什么?

java - 默认值 `server.servlet.session.persistent`

java - Tomcat 8 jpda 端口

java - Jetty - 如何以编程方式在 web.xml 中强制执行安全约束