spring的注解校验如何使用,spring propertysource
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
@PropertySource注解用来增加PropertySource到 Spring 的Environment中。和@Configuration注解结合使用。
使用例子
给一个指定文件app.properties包含一个键值对bean.name=java.lang.String。@PropertySource会把app.properties放入到Environment里。
解析带有占位符
如果占位符my.placheholder已经注册到Environment,那么占位符将被解析成对应的值。如果没有找到对应值,那么将会使用默认值app。
覆盖
如果有多个.property的文件,并且每个文件都包含相同的键名,那么存在覆写。
源码分析
处理@PropertSource注解
@PropertySource注解和@Configuration注解结合使用,那源码的入口就是ConfigurationClassPostProcessor#processConfigBeanDefinitions,在方法内创建了类ConfigurationClassParser。由ConfigurationClassParser#processPropertySource方法负责解析处理@PropertySource。大概逻辑就是:获取资源路径,然后由Environment解析路径占位符,得到实际资源路径,然后由ResourceLoader根据路径加载资源Resource,最后把Resource转成PropertySource放入Environment里。
解析占位符 PropertyPlaceholderHelper
PropertyPlaceholderHelper来负责解析替换占位符。具体源码不分析,来看一下具体使用几个例子。
调用时序图
类图
扩展
Environment.getProperty(String key):是有顺序的。首先会从systemProperties里获取,如果获取不到,再从systemEnvironment获取;如果获取不到,则从由@PropertySource指定路径获取。
PropertySource
ProertySource可以看作是键值对一种数据结构,包含两个字段name和 泛型类型T。
PropertySources
PropertySources可以看作是PropertySource的List结构版本,可以存放多个。
MutablePropertySources
MutablePropertySources是实现类。结构如下所示
XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com