java - 根据系统属性注入(inject) spring bean

标签 java spring dependency-injection

我的项目框架的设计方式使我无法访问 Springs ApplicationContext。但是,我想根据系统属性注入(inject) bean。如果该属性设置为 true,则注入(inject)所有 Bean,否则不注入(inject)。有这种可能吗。像下面这样的东西。顺便说一句,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 - 根据系统属性注入(inject) spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28940376/

相关文章:

java - String Boot 获取资源文件

java - 如何让maven在linux上请求正确的javafx依赖

Spring:如何确保Tomcat JDBC ConnectionPool可以写入日志

java - 如何在 Ninjaframework 的 ConstraintValidator 中使用依赖注入(inject)?

java - 键绑定(bind)不调用 AbstractAction

java - Spring PersistanceContext、EntityManager 和使用数据库

java - Jdbctemplate 查询字符串 : EmptyResultDataAccessException: Incorrect result size: expected 1, 实际为 0

c# - Unity依赖注入(inject)解决返回System.NullReferenceException

java - 我可以将参数传递给 GWT 模块构造函数吗?

java - 无法在 Apache Shiro 中设置成功 URL