【发布时间】:2020-01-21 14:37:08
【问题描述】:
我开始学习 Spring 注解。我目前在我的配置类中使用@PropertySource 注释来解析属性值并且一切正常,但后来我读到了PropertySourcesPlaceholderConfigurer。
什么时候或为什么我应该使用它?
【问题讨论】:
标签: java spring spring-boot spring-mvc properties
我开始学习 Spring 注解。我目前在我的配置类中使用@PropertySource 注释来解析属性值并且一切正常,但后来我读到了PropertySourcesPlaceholderConfigurer。
什么时候或为什么我应该使用它?
【问题讨论】:
标签: java spring spring-boot spring-mvc properties
来自@PropertySourcejavadoc
...
但是请注意,显式注册 通过静态 @Bean 的 PropertySourcesPlaceholderConfigurer 方法通常仅在您需要自定义配置时才需要,例如
占位符语法等。请参阅
的“使用外部值”部分 配置 @Configuration 的 javadocs 和“关于 BeanFactoryPostProcessor-返回Bean@Bean的@Bean方法 详细信息和示例的 javadocs。
具体来说,如果没有 bean 后处理器(例如 PropertySourcesPlaceholderConfigurer)为 ApplicationContext 注册嵌入值解析器,Spring 将注册一个默认嵌入值解析器,该解析器根据环境中注册的属性源解析占位符。
...
好吧,如果您需要设置或获得对属性配置 bean 的更多控制权,例如 PropertySourcesPlaceholderConfigurer您可以定义它。否则可以省略。
但如果您使用 Spring 4.3.0 之前的版本,则必须声明此 bean 以解析 @Value。
了解更多详情:
6.Configuration using Raw Beans in Spring 3.0 – the PropertyPlaceholderConfigurer
javadoc @PropertySource
希望对你有所帮助)
【讨论】: