Quantcast
Channel: Inside Coding » Java EE
Viewing all articles
Browse latest Browse all 5

How to inject Spring beans into Servlets

$
0
0

This can be achieved in 3 simple steps:

1. Implement HttpRequestHandler

First of all your servlet class must implement the org.springframework.web.HttpRequestHandlerinterface and provide an implementation for the handleRequest() method just like you would override doPost().

2. Declare the servlet as a Spring Bean

You can do this by either adding the @Component(“myServlet”) annotation to the class, or declaring a bean with a name myServlet in applicationContext.xml.

   @Component("myServlet")
   public class MyServlet implements HttpRequestHandler {
...

3. Declare in web.xml a servlet named exactly as the Spring Bean

The last step is to declare a new servlet in web.xml that will have the same name as the previously declared Spring bean, in our case myServlet. The servlet class must be org.springframework.web.context.support.HttpRequestHandlerServlet.

           
        <servlet>     
                <display-name>MyServlet</display-name>
                <servlet-name>myServlet</servlet-name>
                <servlet-class>
   org.springframework.web.context.support.HttpRequestHandlerServlet
               </servlet-class>
        </servlet>

        <servlet-mapping>
                <servlet-name>myServlet</servlet-name>
                <url-pattern>/myurl</url-pattern>
        </servlet-mapping>

Now you are ready to inject any spring bean in your servlet class.

   @Component("myServlet") 
   public class MyServlet implements HttpRequestHandler {

        @Autowired
        private MyService myService;

Recommendations





Filed under: Design Patterns, Java EE, Spring, Tips, Web Tagged: bean, dependency injection, servlets, spring, web

Viewing all articles
Browse latest Browse all 5

Trending Articles