从Java Config升级到Spring Boot

时间:2020-02-07 14:47:00

标签: spring spring-boot

使用自动配置将现有系统升级到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保留原样吗?这是一个相当大的项目,升级是不平凡的,所以我只想做一次!

1 个答案:

答案 0 :(得分:0)

取决于您以前的@Profile批注的来源。如果您使用的是Spring的@Profile,则功能如下:

  • 仅当@Profile("dev")配置文件处于活动状态时,用dev注释一个类才会加载该类并在Spring上下文中注册它
  • 仅当@Profile("!dev")配置文件处于非活动状态时,使用dev注释类将加载该类并在Spring上下文中注册它

如果这听起来像您已经拥有的,则无需进行任何更改。