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'參數來控制屬性不存在時發生的情況。您是否試圖說空字符串值是代碼中不存在的同義詞? –