使用自动配置将现有系统升级到Spring Boot。当前系统是全部Java配置。我对于是否继续使用@Profile
感到困惑。不再需要该注释吗?我在升级方面进行了广泛的搜索,只发现了非Spring Java迁移和创建新项目的参考。
我们的配置类中典型的@Profile
用法类似于:
@Bean
@Profile("is-standalone")
public Service unsecuredService(SomeApi someApi) {
return new ...
}
我从Spring Boot示例中推断出,建议使用@Conditional
注释之一,如下所示:
@Bean
@ConditionalOnProperty("unsecured.enabled")
public Service unsecuredService(SomeApi someApi) {
return new ...
}
然后在YAML
文件中,is-standalone
配置文件启用或禁用该配置文件的所有各种属性。这是升级的正确方法吗?要从上方重复一个问题,可以@Profile
保留原样吗?这是一个相当大的项目,升级是不平凡的,所以我只想做一次!
答案 0 :(得分:0)
取决于您以前的@Profile
批注的来源。如果您使用的是Spring的@Profile
,则功能如下:
@Profile("dev")
配置文件处于活动状态时,用dev
注释一个类才会加载该类并在Spring上下文中注册它@Profile("!dev")
配置文件处于非活动状态时,使用dev
注释类将加载该类并在Spring上下文中注册它如果这听起来像您已经拥有的,则无需进行任何更改。