有没有办法在包级别使用 Spring @Profile 注解?

Eri*_* B. 5 configuration spring spring-java-config

我试图将特定配置文件的所有 bean 定义放在一起,并且不想将它们全部推入一个巨大的 AppConfig.java 类中。我想知道是否有一种方法可以使用 package-info.java 在包级别进行注释,并使该包中的所有配置文件继承该配置文件。

我在 package-info.java 中尝试了以下操作:

@Profile("test")
package com.system.configuration.test;
import org.springframework.context.annotation.Profile;
Run Code Online (Sandbox Code Playgroud)

但是@Configuration无论是否是“测试”配置文件,包中的类似乎都会被使用。

单独注释每个类是唯一的选择吗?

Jak*_*ski 2

您可以通过为不同的@Configuration配置文件创建单独的类来以不同的方式完成此操作:

@Configuration
@Profile("test")
@ComponentScan("com.system.configuration.test")
public class TestProfile {
}
Run Code Online (Sandbox Code Playgroud)

然后在你的主配置类上你需要进行导入:

@Configuration
@Import(TestProfile.class)
public class MainConfiguration {
}
Run Code Online (Sandbox Code Playgroud)