0
我目前在我的application.yaml文件的String属性条件下创建dataSource bean时遇到问题。SpEL @ConditionalOnProperty字符串属性empty或nulll
理想情况下,我只想在我的application.yaml文件中设置url时才创建dataSource bean。如果bean不存在(空或空),则不应创建该bean。我知道这个条件检查布尔值,但无论如何检查字符串属性是否为空或空?
DatabaseConfig.java
@Configuration
public class DatabaseConfig {
@Value("${database.url:}")
private String databaseUrl;
@Value("${database.username:}")
private String databaseUsername;
@Value("${database.password:}")
private String databasePassword;
protected static final String DRIVER_CLASS_NAME = "com.sybase.jdbc4.jdbc.SybDriver";
/**
* Configures and returns a datasource. Optional
*
* @return A datasource.
*/
@ConditionalOnProperty(value = "database.url")
@Bean
public DataSource dataSource() {
return DataSourceBuilder.create()
.url(testDatabaseUrl)
.username(testDatabaseUsername)
.password(testDatabasePassword)
.build();
}
}
application.yml(此字段将是可选的)
database:
url: http://localhost:9000
'@ ConditionalOnProperty'已经有一个'matchIfMissing'参数来控制属性不存在时发生的情况。您是否试图说空字符串值是代码中不存在的同义词? –