小编use*_*237的帖子

SpEL @ConditionalOnProperty字符串属性为空或为空

我目前在我的applications.yaml文件中具有String属性的情况下,无法创建dataSource bean。

理想情况下,仅当在application.yaml文件中设置了URL时,我才想创建dataSource bean。如果bean不存在(空或null),则不应创建。我知道这种情况会检查布尔值,但是否仍然要检查string属性为空还是null?

数据库配置文件

@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();
    }
}
Run Code Online (Sandbox Code Playgroud)

application.yml(此字段为可选)

database:
  url: http://localhost:9000
Run Code Online (Sandbox Code Playgroud)

java spring datasource spring-el spring-boot

3
推荐指数
3
解决办法
3942
查看次数

标签 统计

datasource ×1

java ×1

spring ×1

spring-boot ×1

spring-el ×1