How do I initialize a web application using a dagger?

What do I need to add to the method contextInitialized

to properly initialize the object graph?

Given this dagger module:

@Module
public class MapperModule {

    @Provides
    @Singleton
    ObjectMapper provideObjectMapper() {
        return new ObjectMapper();
    }

}

      

This ServletContextListener subclass:

public class DaggerDi implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        ObjectGraph objectGraph = ObjectGraph.create(new MapperModule());                
     }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {

    }

}

      

And web.xml

<web-app>
  <display-name>Archetype Created Web Application</display-name>
   <listener>
    <listener-class>
             com.me.config.DaggerDi
        </listener-class>
   </listener>
</web-app>

      

+3


source to share


1 answer


You can check out this servlet dagger project , I haven't tried it yet, but looks simple enough, you'll have to:

  • Configure the servlet (web.xml file):
<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>

      



  1. Implement a listener and context module:

    @Module (injects = {...}, includes = ServletModule.class) public class MyModule {}

    @Module (injects = {...}, includes = ServletRequestModule.class) public class MyRequestModule {}

    The public class MyServletContextListener extends DaggerServletContextListener {@Override protected Class [] getBaseModules () {return new Class [] {MyModule.class}; }

    @Override
    protected Class<?>[] getRequestScopedModules() {
        return new Class<?>[]{MyRequestModule.class};
    }
    
          

    }

Hello!

0


source







All Articles