这是我创建H2数据源的代码。只有在'dev'配置文件处于活动状态时才可用。
@Bean
@Profile("dev")
public DataSource h2() {
return new EmbeddedDatabaseBuilder().setType(H2).build();
}
但是当我在没有设置任何配置文件的情况下启动应用程序时,spring boot会初始化H2而忽略配置文件注释。以下是启动时弹簧启动的输出消息:
No active profile set, falling back to default profiles: default
Starting embedded database: url='jdbc:h2:mem:testdb ...
答案 0 :(得分:0)
该个人资料不会被忽略,并且您的DataSource
bean不会被创建。它是由DataSource
配置的Spring Boot的DataSourceAutoConfiguration
bean。它正在运行,因为H2在类路径上。
如果您不希望自动配置DataSource
(以便在dev
个人资料处于有效状态时只获得一个),那么您应该排除DataSourceAutoConfiguration
:
@SpringBootApplication(exclude=DataSourceAutoConfiguration.class)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}