springboot中Properties注解的实现

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 19:39   38   0

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

public interface PropertySources extends Iterable<PropertySource<?>> {

 /**
  * Return a sequential {@link Stream} containing the property sources.
  * @since 5.1
  */
 default Stream<PropertySource<?>> 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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP