Skip to content
Advertisement

How to set a Spring profile to a package?

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.

Advertisement

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 {
}
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement