博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot中Properties注解的实现
阅读量:5915 次
发布时间:2019-06-19

本文共 1901 字,大约阅读时间需要 6 分钟。

  关于@PropertySources注解的理解:http://www.imooc.com/article/252889?block_id=tuijian_wz

public interface PropertySources extends Iterable
> { /** * Return a sequential {@link Stream} containing the property sources. * @since 5.1 */ default Stream
> stream() { return StreamSupport.stream(spliterator(), false); } /** * Return whether a property source with the given name is contained. * @param name the {@linkplain PropertySource#getName() name of the property source} to find */ boolean contains(String name); /** * Return the property source with the given name, {@code null} if not found. * @param name the {@linkplain PropertySource#getName() name of the property source} to find */ @Nullable PropertySource
get(String name);这就是PropertySources的接口,那么它的实现类在哪里?是MutablePropertySources,}

  PropertySources是由工厂类生成的,看看DefaultPropertySourceFactory

public class DefaultPropertySourceFactory implements PropertySourceFactory {    @Override    public PropertySource
createPropertySource(@Nullable String name, EncodedResource resource) throws IOException { return (name != null ? new ResourcePropertySource(name, resource) : new ResourcePropertySource(resource)); }}

然后又调用ResourcePropertySource类,在该类下,实现了对配置文件的加载loadProperties(resource).

public class ResourcePropertySource extends PropertiesPropertySource {	/** The original resource name, if different from the given name. */	@Nullable	private final String resourceName;	/**	 * Create a PropertySource having the given name based on Properties	 * loaded from the given encoded resource.	 */	public ResourcePropertySource(String name, EncodedResource resource) throws IOException {		super(name, PropertiesLoaderUtils.loadProperties(resource));		this.resourceName = getNameForResource(resource.getResource());	}

  剩下的就是java的文件的加载过程,细节就不再讨论了

 

转载于:https://www.cnblogs.com/Robin008/p/10251869.html

你可能感兴趣的文章
转载如何具体优化网站关键词的?(三)
查看>>
IO流(四)_其他流
查看>>
我的友情链接
查看>>
LogStash日志分析展示系统
查看>>
我的友情链接
查看>>
Web前端开发规范文档
查看>>
安装win2008r2、域控、IIS、证书服务器、部署exchange2010
查看>>
centos6.2安装tomcat
查看>>
利用ansible实现一键化部署 rsync服务
查看>>
蒙牛发生问题一大堆,为何依然东方不败
查看>>
Python代码无法保存
查看>>
C#接口的显示实现和隐式实现
查看>>
nginx根据条件跳转+跳转规则
查看>>
(转载)Javascript异步编程的4种方法
查看>>
ACM suvey
查看>>
Oracle的case 用法
查看>>
Python之路【第二十七篇】:反射
查看>>
敌兵布阵
查看>>
Web.config详解 [转]
查看>>
PHP杂记
查看>>