將spring管理的bean使用注解的方式注入到servlet中


Filter和Servlet中不能直接注解使用spring的bean,因為這兩個都是servlet容器維護管理的,當然也有實現方法,如下:

 

1。創建一個AbstractServlet 抽象類,讓你的所有servlet繼承於此類:

import java.io.IOException;   

  •   
  • import javax.servlet.ServletConfig;   
  • import javax.servlet.ServletException;   
  • import javax.servlet.http.HttpServlet;   
  • import javax.servlet.http.HttpServletRequest;   
  • import javax.servlet.http.HttpServletResponse;   
  •   
  • import org.springframework.web.context.support.SpringBeanAutowiringSupport;   
  •   
  • /**  
  •  * Servlet implementation class AbstractServlet  
  •  */  
  •   
  • public class AbstractServlet extends HttpServlet {   
  •     private static final long serialVersionUID = 1L;   
  •   
  •     /**  
  •      * @see HttpServlet#HttpServlet()  
  •      */  
  •     public AbstractServlet() {   
  •         super();   
  •         // TODO Auto-generated constructor stub   
  •     }   
  •   
  •     public void init(ServletConfig config) throws ServletException {
  •         // 在 servlet的 init method中,,寫下面的程式,讓 spring 去 ApplicationContext 做 lookup,
  •         SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,   
  •                 config.getServletContext());   
  •     }   
  •   
  •     /**  
  •      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse  
  •      *      response)  
  •      */  
  •     protected void doGet(HttpServletRequest request,   
  •             HttpServletResponse response) throws ServletException, IOException {   
  •     }   
  •   
  •     /**  
  •      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse  
  •      *      response)  
  •      */  
  •     protected void doPost(HttpServletRequest request,   
  •             HttpServletResponse response) throws ServletException, IOException {   
  •         doGet(request, response);   
  •     }   
  •   
  • }

然后需要有注解spring管理的bean的servlet或fiter時候繼承此類,重寫方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM