基于系统 属性 注入 spring 个 bean
Inject spring beans based on a System Property
我的项目框架的设计方式使我无法访问 Springs ApplicationContext。但是,我想注入基于系统属性 的bean。如果 属性 设置为 true,则注入所有 bean,否则注入 none。有没有这个可能。像下面这样的东西。顺便说一句,Spring 版本是 3.0
<!-- all beans -->
<bean></bean>
<bean></bean>
<bean></bean>
<bean class ="org.springframework...PropertyPlaceHolderConfigurer>
<property name = "properties"
<value>
OBJECT_INSTANCE_ID =0
</value>
</property>
<bean>
简而言之,属性 是使用 PropertyPlaceHolderConfigurer 读取的。所有其他 bean 应根据值 OBJECT_INSTANCE_ID 加载。 属性 在位于 /etc/../system.property
的 属性 文件中定义
您可以使用 Spring 个配置文件来实现此功能:
<beans profile="dev">
<bean id="devConfig" class="<yourClassName>" />
</beans>
在上面的示例中,仅当 dev
配置文件被激活时才会构建 devConfig
bean。您可以按如下方式激活配置文件:
使用注释:
@ActiveProfiles("dev")
使用系统属性:
-Dspring.profiles.active=dev
如果你想采用像 Java 配置和 Spring 引导这样的现代方法,你可以使用 @ConditionalOnProperty annotation Spring 作为条件注入之一引入的引导。
我的项目框架的设计方式使我无法访问 Springs ApplicationContext。但是,我想注入基于系统属性 的bean。如果 属性 设置为 true,则注入所有 bean,否则注入 none。有没有这个可能。像下面这样的东西。顺便说一句,Spring 版本是 3.0
<!-- all beans -->
<bean></bean>
<bean></bean>
<bean></bean>
<bean class ="org.springframework...PropertyPlaceHolderConfigurer>
<property name = "properties"
<value>
OBJECT_INSTANCE_ID =0
</value>
</property>
<bean>
简而言之,属性 是使用 PropertyPlaceHolderConfigurer 读取的。所有其他 bean 应根据值 OBJECT_INSTANCE_ID 加载。 属性 在位于 /etc/../system.property
的 属性 文件中定义您可以使用 Spring 个配置文件来实现此功能:
<beans profile="dev">
<bean id="devConfig" class="<yourClassName>" />
</beans>
在上面的示例中,仅当 dev
配置文件被激活时才会构建 devConfig
bean。您可以按如下方式激活配置文件:
使用注释:
@ActiveProfiles("dev")
使用系统属性:
-Dspring.profiles.active=dev
如果你想采用像 Java 配置和 Spring 引导这样的现代方法,你可以使用 @ConditionalOnProperty annotation Spring 作为条件注入之一引入的引导。