我目前使用CDI(焊接)與tomcat 6作爲servlet容器。在配置中使用WeldLifecycleListener,進行依賴性注入非常簡單。彈簧自動依賴注入
我的問題是:是否有相當於Spring的WeldLifecycleListener避免從ApplicationContext實例化bean?
我目前使用CDI(焊接)與tomcat 6作爲servlet容器。在配置中使用WeldLifecycleListener,進行依賴性注入非常簡單。彈簧自動依賴注入
我的問題是:是否有相當於Spring的WeldLifecycleListener避免從ApplicationContext實例化bean?
我不知道WeldLifecycleListener
但可以給指針自動依賴注入
@Resource註釋可用於按名稱自動佈線。
如果您不想在Spring配置中定義任何bean,請使用組件掃描來自動檢測組件,並在bean上使用註釋@Component - 此+ @ Autowire/@ Resource將簡化您的配置。
在春季3,你可以使用JSR-330註釋,比如@Named
和@Inject
(見http://blog.springsource.com/2009/09/29/spring-framework-3-0-rc1-released/)。
與@Named
註解的類將被自動檢測,並且當你通過添加以下到彈簧配置文件使組件掃描實例:
<context:component-scan base-package="${base-package}" />
其中${base-package}
是包含所有部件的封裝(或者直接或者在子包中)。
感謝迄今爲止的答案,但我的問題不是如何定義bean(java,xml,annotation)。到目前爲止,這沒有問題。 有了Spring,我只設法解決了從applicationContext獲得的bean中的依賴問題。例如,以下工作: ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()); testBean =(TestBean)ctx.getBean(「testBean」); testBean中的依賴關係已正確解析。但是,我不能直接@Inject testBean而不調用allicationContext。 – Sordul
爲了澄清,你有servlet是由CDI管理的,但希望Spring向它們注入依賴關係?我不是CDI專家,但我想你必須選擇通過CDI或Spring來管理它們,否則你將不得不添加自定義代碼來獲取spring上下文並注入依賴關係。 –
雖然也許如果你添加'@ Component'或者'@ Controller'給你想要注入依賴項的類(也就是你正在編寫'ctx = WebApplicationContext ...'的類)。 –
「避免應用程序上下文」是什麼意思? –