@ConfigurationProperties

不能单独使用必须使用带有可以实例化bena的注解比如:@Component或者组合了@Component的注解
@Configuration,@ConfigurationProperties,@EnableConfigurationProperties

@ConfigurationProperties配合@EnableConfigurationProperties使用

可以实现@ConfigurationProperties所注解类是否实例化,由@EnableConfigurationProperties所注解的类决定。

@Data
@ConfigurationProperties(prefix="my.test")
public class MyServerConfiguration {
    private String name;
}

@Component
@EnableConfigurationProperties(MyServerConfiguration.class)
public class MyServerConfigutation2 {

}

MyServerConfigutation2这个类如果没有实例化MyServerConfiguration这个配置类也不会实例化!

联合使用

@Configuration,@ConfigurationProperties配合@ConditionalOnProperty使用,实现效果:

@Configuration
@ConditionalOnProperty(prefix = "my.test", value = "enabled", havingValue = "true")
@EnableConfigurationProperties(MyServerConfiguration.class)
public class MyServerConfigutation2 {

}
@Data
@ConfigurationProperties(prefix="my.test")
public class MyServerConfiguration {
    private String name;
}

@Configuration,@ConfigurationProperties,@EnableConfigurationProperties

只有配置文件中指定了:my.test.enabled=true才会实例化MyServerConfigutation2 这个类,也就才会实例化MyServerConfiguration ;

相关文章:

  • 2019-12-21
  • 2021-08-23
  • 2022-01-10
  • 2021-07-08
  • 2021-08-28
  • 2022-12-23
  • 2021-08-10
猜你喜欢
  • 2021-11-11
  • 2021-07-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-03-11
相关资源
相似解决方案