java - Springboot - 从 application.yml 注入取决于方法名称
问题描述
我参考了Spring Boot - 从 application.yml注入映射来从 application.yml 文件注入映射
我的 application.yml 片段如下
easy.app.pairMap:
test1: 'value1'
test2: 'value2'
属性文件如下
@Component
@Configuration
@ConfigurationProperties("easy.app")
@EnableConfigurationProperties
public class TestProperties {
private Map<String, String> pairMap= new HashMap<String, String>();
public void setPairMap(Map<String, String> pairMap) {
this.pairMap= pairMap;
}
}
但是,我发现只有当 setter 和 getter 的格式正确时才会发生值注入。即 getPairMap 和 setPairMap。不是在使用 getPairs 或 SetPairs 时。这种行为的原因是什么
解决方案
要使用 Spring Boot 的Binder
实用程序绑定到属性(就是这样@ConfigurationProperties
做的),您需要在目标 bean 中有一个属性,并且您需要提供一个 setter 或使用可变值对其进行初始化。
Spring如何理解它需要使用SetPairs
方法来设置你的pairMap
属性?getter 和 setter 的命名有约定,如果您希望一切正常,则应遵循此约定。
推荐阅读
- macos - 如何在 MacOS 中自动将 EPL 文件发送到 Zebra 打印机
- telegram - 如何从电报组自动发送消息到我的服务器?
- c# - 了解设置哪些标头以及如何设置标头
- javascript - 为什么带有 useContext 触发器的自定义路由 HOC 会重新渲染?
- java - Elasticsearch 7.9 CCR 更改领导索引上的副本数不会被跟随索引复制
- vue.js - 带有 Webpack 的 Vue 组件
- r - 将 Ubuntu 从 18.04 升级到 20.04 时的依赖问题
- javascript - 跨平台应用程序开发 - onPress 无法调用有助于在 react-native 中显示隐藏的 TextInout 的函数
- spring-el - SpEL:如何检查变量是否与列表中的任何元素匹配?
- php - 如果在发布/提交之前选中了复选框,如何检查 PHP?