Spring Boot可以根据系统属性启用DataSourceAutoConfiguration

时间:2016-04-20 00:19:53

标签: spring-boot

我的项目中有以下依赖项,并且在我的主类中有@SpringBootApplication             弹簧引导起动数据JPA
有没有办法只在存在Env属性/系统属性时有条件地启用spring boot datasourceautoconfiguration类。

由于

3 个答案:

答案 0 :(得分:0)

看来如果将属性“spring.datasource.initialize”定义为false,将跳过初始化逻辑。

如果查看DataSourceAutoConfiguration定义,它将加载配置属性...

enter image description here

DataSourceProperties有一个名为“initialize”的属性,看起来这是在DataSourceInitializer默认实现中引用的......

enter image description here

我读到这是因为能够使用属性跳过数据源初始化。

希望这有帮助

答案 1 :(得分:0)

如何使用注释DataSourceAutoConfiguration扩展@ConditionalOnProperty?您可以从spring中排除原始DataSourceAutoConfiguration,并将自己的实现作为应用程序的一部分。如,

@Configuration
@ConditiaonalOnProperty(value = "datasource.property.anything",matccchIfMissing==true)
public class DataSourceInit extends DataSourceAutoConfiguartion {
}

在您的spring应用程序类中添加exclude

@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})

答案 2 :(得分:0)

您可以使用var popTime = dispatch_time(DISPATCH_TIME_NOW, animationDuration * NSEC_PER_SEC) dispatch_after(popTime, dispatch_get_main_queue(), {() -> Void in button.userInteractionEnabled = true }) 属性排除自动配置。您可以使用系统属性设置该属性:

spring.autoconfigure.exclude

您也可以使用-Dspring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 环境变量进行设置。