Spring 3.1.1中@Conditional的替代解决方案

时间:2017-08-29 15:56:35

标签: java spring spring-java-config

我被困在Spring 3.1.1应用程序中而无法升级到4.x因此我无法使用@Conditional批注来有条件地启用Spring Bean。在Spring 3.1.1中实现类似行为的最简单方法是什么?目前我没有使用Profiles,而是希望实现更简单的方法。有什么建议吗?

编辑......进一步澄清

我有一个@Configuration文件,其中包含我的所有JMS配置/ Bean。我只想根据属性文件中的true / false属性加载此文件中的bean。我需要能够根据属性文件打开或关闭此功能。在Spring 4中,添加了一个功能来应用@Conditional注释并提供加载bean的条件。我需要做同样的事情,但是在Spring 3.1.1中。

1 个答案:

答案 0 :(得分:0)

如果设置了属性,创建bean怎么样,否则创建null?

@Bean
public YourBean yourBean(@Value("your.property.value") boolean enabled) {
    if (enabled) {
        return new YourBean();
    }
    return null;
}

这样就不会在其他地方使用。 如果您需要自动装配,您可以自动装配它,然后像:

@Autowired(required = false)
private YourBean someBean;

并在使用前检查它是否存在。