Servlet自動注入Spring容器中的Bean解決方法


很多情況在進行Web開發的時候需要自己手寫Servlet來完成某些功能,而servlet有需要注入Spring容器中的某些bean,這是每次都要手動獲取比較麻煩,這里有一個解決方案,只需要寫一個servlet的基類,其它的類只需要集成基類后,便可以想action那樣進行注入了。

基類Servlet代碼如下:

 1 public class BaseServlet extends HttpServlet {
 2     private static final long serialVersionUID = 1L;
 3 
 4     public void init() throws ServletException {
 5         super.init();
 6         WebApplicationContextUtils
 7                 .getWebApplicationContext(getServletContext())
 8                 .getAutowireCapableBeanFactory().autowireBean(this);
 9     }
10 
11 }

具體的功能servlet代碼如下:

 1 @WebServlet("/testServlet")
 2 public class TestServlet extends BaseServlet {
 3 
 4     private static final long serialVersionUID = 1L;
 5     @Autowired
 6     private TestService testService = null;
 7 
 8     protected void doGet(HttpServletRequest request,
 9             HttpServletResponse response) throws ServletException, IOException {
10         testService.print();
11     }
12 
13     protected void doPost(HttpServletRequest request,
14             HttpServletResponse response) throws ServletException, IOException {
15         doGet(request, response);
16     }
17 }

其中testServic屬性便是自動注入的。具體的spring配置注入不再細說。


免責聲明!

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



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