Dependency injection 如何使用dagger初始化web应用程序?
我需要向Dependency injection 如何使用dagger初始化web应用程序?,dependency-injection,dagger,servletcontextlistener,Dependency Injection,Dagger,Servletcontextlistener,我需要向contextInitialized方法添加什么才能正确初始化对象图 鉴于此匕首模块: @Module public class MapperModule { @Provides @Singleton ObjectMapper provideObjectMapper() { return new ObjectMapper(); } } ServletContextListener的此子类: public class DaggerDi
contextInitialized
方法添加什么才能正确初始化对象图
鉴于此匕首模块:
@Module
public class MapperModule {
@Provides
@Singleton
ObjectMapper provideObjectMapper() {
return new ObjectMapper();
}
}
ServletContextListener的此子类:
public class DaggerDi implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
ObjectGraph objectGraph = ObjectGraph.create(new MapperModule());
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
和web.xml
<web-app>
<display-name>Archetype Created Web Application</display-name>
<listener>
<listener-class>
com.me.config.DaggerDi
</listener-class>
</listener>
</web-app>
Web应用程序创建的原型
com.me.config.DaggerDi
您可以检查,我还没有尝试过,但看起来很简单,您必须:
com.example.MyServletContextListener
匕首过滤器
com.leacox.dagger.servlet.DaggerFilter
匕首过滤器
/*
@覆盖
受保护类[]getRequestScopedModules(){
返回新类[]{MyRequestModule.Class};
}
}<web-app>
<listener>
<listener-class>com.example.MyServletContextListener</listener-class>
</listener>
<filter>
<filter-name>Dagger Filter</filter-name>
<filter-class>com.leacox.dagger.servlet.DaggerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Dagger Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
@Override
protected Class<?>[] getRequestScopedModules() {
return new Class<?>[]{MyRequestModule.class};
}