關於spring中無法將service注入到servlet中的問題


 首先,servlet是動態網頁項目區別於普通的java項目的,是動態網頁項目中web.xml主要配置文件管理的,
而spring只能管理普通的pojo,而沒辦法直接注入,盡管你的注入方式和配置方式都沒有問題。
那如何解決這個問題呢?解決的辦法總比遇到的問題多,不然spring MVC又是如何做到呢?其實filter也是會遇到類似問題的。
個人建議使用第四種方式
  第一種解決辦法是:

  在servlet中的init方法或者是無參構造方法內直接用最原始的方式進行手動注入,即類似如下:
WebApplicationContext wactx = WebApplicationConteextUtils.getWebApplicationContext(request.getServletContext);
xxxService接口 = wactx.getBean(XxxService接口.class); 
除了可以用WebApplicationContext獲取之外,用ClassPathXmlApplicationContext來獲取也是可以的。

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplication("配置文件路徑字符串");

xxxService接口 = ctx.getBean("id的字符串",XxxService接口.class); 
這樣兩種方法可以減少該Service接口的set方法。

  第二種解決辦法是:

  用自己手寫一個關於用包名和類名直接反射成一個類,再以對象的方式返回來解決,這樣也可以不用寫相應service的set方法,但是這樣的
造輪子是沒必要的。

  第三種解決辦法是:

  新寫一個servlet,而且可以實現給一個完整類名就可以反射出一個對象的,然后在其他各個servlet中都可以用繼承的方式來造各種想要的類,但是
這樣還是要寫各種set方法。

  第四種解決辦法是:

  這個時候直接用spring MVC吧,不管是配置還是用注解,都是比較方便的,而且spring MVC的開發方式也是對你的開發效率提升有很大優勢的。


免責聲明!

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



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