How to set a Spring profile to a package?

10.2k views Asked by At

I want to set a profile name to a whole package and I don't know how. If where is no easy way then I have to mark every class in the package and sub packages with @Profile annotation.

<context:component-scan/> tag does not support attribute like profile so I have no idea.

1

There are 1 answers

2
Jan Zyka On BEST ANSWER

If you don't mix XML and Java config you could use @Profile on a bean which has @ComponentScan annotation with your target package maybe?

Similarly with XML: you can have two different <beans ...> sections, each with different profile and in each of the section you define your own <context:component-scan basePackage="..." />

@Configuration
@Profile("profile1")
@ComponentScan(basePackage="package1")
class Config1 {
}

@Configuration
@Profile("profile2")
@ComponentScan(basePackage="package2")
class Config2 {
}