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

时间:2013-10-23 15:58:18

标签: spring configuration 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;

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

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

1 个答案:

答案 0 :(得分:2)

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

@Configuration
@Profile("test")
@ComponentScan("com.system.configuration.test")
public class TestProfile {
}

然后在您的主要配置类上,您需要执行导入:

@Configuration
@Import(TestProfile.class)
public class MainConfiguration {
}