基于布尔变量自动装配 Spring Bean

pho*_*Sid 5 java spring

我想以这样的方式配置 spring bean,即根据布尔变量的值,两个可用连接 bean 之一在代码中自动连接。

下面是布尔变量的初始化:

//This is overridden as false from the properties file on the server.
@Value(value = "${my.property.connectionOne:true}") 
private boolean connectionOne;
Run Code Online (Sandbox Code Playgroud)

我用这样的方式定义了 Bean:

@Bean(name = "specificConnection")
public Destination getSpecificConnection() throws Exception {
    if (connectionOne) { //boolean variable
        return new ConnectionOne("DB");
    }
    else {
        return new ConnectionTwo("XML");
    }
}
Run Code Online (Sandbox Code Playgroud)

哪里ConnectionOneConnectionTwo都实施Destination

我在所需的类中使用该 bean:

@Autowired
@Qualifier(value = "specificConnection")
private Destination specificConnection;
Run Code Online (Sandbox Code Playgroud)

然而,它似乎不起作用。ConnectionOne仅当我将布尔变量的值更改为 false 时,它​​才会继续返回。

我正在使用 Spring 版本 4.2.0 和 Wildfly Server。

如果需要进一步说明,请告诉我。

Noi*_*xes 1

这是弹簧型材的完美示例!看看这个链接:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

在 Spring 中,您可以定义程序将在其中运行的不同配置文件。根据您在 application.properties 中定义的设置,您的程序将使用这些配置文件的不同 bean。:)

我希望这可以帮助你!

问候语

诺伊克斯