關於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來獲取也是能夠的。java

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

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

  第二種解決辦法是:

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

  第三種解決辦法是:

  新寫一個servlet,並且能夠實現給一個完整類名就能夠反射出一個對象的,而後在其餘各個servlet中均可以用繼承的方式來造各類想要的類,可是
這樣仍是要寫各類set方法。xml

  第四種解決辦法是:

  這個時候直接用spring MVC吧,無論是配置仍是用註解,都是比較方便的,並且spring MVC的開發方式也是對你的開發效率提高有很大優點的。對象

相關文章
相關標籤/搜索