由於Servlet 3.0可以以編程方式向javax.servlet.ServletContext#addServlet
註冊Servlet實例。這個類還有一個createServlet
方法,它分析一些註釋並執行依賴注入。我不知道如果我不需要註釋處理,是否需要這種方法。我想有一個通常的構造函數通過依賴注入來設置所需的依賴關係的servlet。Servlet 3.0的構造函數依賴注入?
@Inject
public MyServlet(SomeDependency sd) { // Constructor
...
}
問題:
- 是否有可能建立一個servlet實例 「手動」 無
createServlet
? (new MyServlet()
) - 是否可以使用Java EE服務器的依賴注入機制來執行構造函數注入?怎麼做?還是像Guice一樣需要單獨的DI框架?
謝謝,JSR-299是我正在尋找的。 Weld文檔說:「我們可以通過將其注入到構造函數,bean的方法或字段,或者Java EE組件類(如servlet)的字段或方法中來獲取TextTranslator的實例。」 http://docs.jboss.org/weld/reference/1.0.0/en-US/html/intro.html這似乎是構造函數注入不可能與servlet。 – deamon 2010-01-04 12:24:38
請注意,Weld的早期版本相當......如果您沒有使配置100%正確,則無益。這可能自那以來有所改善。 – 2017-02-20 11:28:49