我有一個班可以說類A這是一個配置類,只有在配置文件「生產」被激活時才能運行。但在類B其中應用程序的主要邏輯是我使用的@Autowired註釋,指的是在類A創建一些豆,我的問題是,當我運行應用程序與配置文件可以說「默認「它會拋出異常,因爲沒有創建相應的bean。所以我的問題是,只有當配置文件「生產」處於活動狀態時,我如何才能在我的B類中使用此Autowired?Java Spring自動裝配配置文件
1
A
回答
2
提供你有一個接口的兩個實現:
public interface A {}
@Component(value="A_dev")
public class ADev implements A {}
@Component(value="A_prod")
public class AProd implements A {}
public class B {
@Autowired @Qualifier("A") A a;
}
添加別名爲一個XML配置和屬性佔位符:
<beans>
<alias name="${a.class}" alias="A"/>
<context:property-placeholder location="app.properties"/>
<beans>
app.properties應該包含
a.class=A_dev
然後改變propertiy會改變你的注入類(應用程序重新啓動是必需的)。
還有其他解決方案,例如:
- 與行家(建立時間)過濾XML上下文
- 創建bean工廠返回不同的A的實現取決於東西
- 使用彈簧EL#{表達}
3
我不明白你的問題。但是如果您需要注入可選bean,則可以使用@Autowired(required = false)
,然後在沒有任何合格bean的環境中,相關屬性將爲空。
相關問題
- 1. Spring @配置文件和自動裝配匹配
- 2. ElasticBeanst Java,spring活動配置文件
- 3. Spring配置文件
- 4. 自動裝配Spring超類
- 5. BeanCreationException與Spring自動裝配
- 6. Spring HibernateTemplate - 自動裝配
- 7. 自動裝配與Spring
- 8. 配置文件的自動安裝
- 9. 使用隱式設置器自動裝配將spring xml轉換爲java配置
- 10. Spring的配置 - 創建並沒有使用自動裝配Autowired
- 11. 自動配置配置文件選擇
- 12. Spring配置文件
- 13. Spring中的自動裝配和註釋配置
- 14. 數據源是不自動裝配蒙山基於Java Spring配置
- 15. 如何爲spring配置文件自動建議/自動完成?
- 16. Freemarker配置自動裝配失敗
- 17. Spring自動裝配類與接口?
- 18. Spring YAML配置文件配置
- 19. Spring Java配置:導入屬性文件
- 20. 自動配置文件匹配
- 21. Spring Java配置。在配置文件中使用PropertiesFactoryBean的
- 22. 關於Spring配置文件
- 23. Spring MVC Java配置
- 24. 的Spring Java配置
- 25. 的Spring Java配置
- 26. Spring Security - Java配置
- 27. Java Spring ApplicationContext配置
- 28. Spring MVC Java配置
- 29. 自動安裝和配置Eclipse插件
- 30. 基於Java的配置,帶參數的自動裝配bean
根據您的使用情況,創建一個2類實現的接口。一個是真正的課堂,另一個是沒有課堂的課程。 – Schaka