servlet 使用spring管理bean

来源:互联网 发布:新世纪网络平台 编辑:程序博客网 时间:2024/05/17 18:02

servlet 使用spring管理bean

要serlvet使用注解的形式去注入bean,那么如何才能将spring管理的bean注入到servlet中。原本spring管理的bean和servlet不在一个上下文环境中是无法相互注入的。

解决办法创建一个AbstractServlet 抽象类,让你的所有servlet继承于此类

 

 

Java代码  收藏代码
  1.    
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.ServletConfig;  
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.   
  11. import org.springframework.web.context.support.SpringBeanAutowiringSupport;  
  12.   
  13. /** 
  14.  * Servlet implementation class AbstractServlet 
  15.  */  
  16.   
  17. public class AbstractServlet extends HttpServlet {  
  18.     private static final long serialVersionUID = 1L;  
  19.   
  20.     /** 
  21.      * @see HttpServlet#HttpServlet() 
  22.      */  
  23.     public AbstractServlet() {  
  24.         super();  
  25.         // TODO Auto-generated constructor stub  
  26.     }  
  27.   
  28.     public void init(ServletConfig config) throws ServletException {  
  29.         SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,  
  30.                 config.getServletContext());  
  31.     }  
  32.   
  33.     /** 
  34.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
  35.      *      response) 
  36.      */  
  37.     protected void doGet(HttpServletRequest request,  
  38.             HttpServletResponse response) throws ServletException, IOException {  
  39.     }  
  40.   
  41.     /** 
  42.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
  43.      *      response) 
  44.      */  
  45.     protected void doPost(HttpServletRequest request,  
  46.             HttpServletResponse response) throws ServletException, IOException {  
  47.         doGet(request, response);  
  48.     }  
  49.   
  50. }  

 关键在于SpringBeanAutowiringSupport.processBInjectionasedOnServletContext(this,

Java代码  收藏代码
  1. config.getServletContext());  
Java代码  收藏代码
  1. 通过使用spring提供的支持可以将当前的servlet上下文环境添加到spring管理的上下文环境中。  
Java代码  收藏代码
  1. 当然还有其他一些方法就不在这赘述了。  
原创粉丝点击