我有一个班可以说类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