`
baitian
  • 浏览: 30196 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring PropertySource 学习

阅读更多
PropertySource 是PropertySources 容器唯一可存储的元素。
PropertySources  定义了一个借口:
1:根据key,得到value
2:遍历整个容器
PropertySources 在SPRING 中的唯一实现是MutablePropertySources,
MutablePropertySources 不仅实现借口定义的两个功能,还增加了可以插入,删除,替代的功能,
并且,插入是有优先级概念的,这意味着PropertySource 在PropertySources中的插入顺序不是固定的,
因此实际是MutablePropertySources内部采用的数据结构是链表形式的LinkedList

虽然容器PropertySources提供了基本的查找功能.但是查找效率不高:
	
public PropertySource<?> get(String name) {
		return this.propertySourceList.get(this.propertySourceList.indexOf(PropertySource.named(name)));
	}

首先新建一个ComparsionPropertySource对象:PropertySource.named(name)
然后遍历这个List,找出该对象的位置,
最后再一次遍历LIST,返回对应位置的PropertySources。

Spring 又提供一个专门用来查找Property的接口 PropertyResolver。
这个接口最重要的是提供了property value 的类型转换接口。
该接口的一个实现PropertySourcesPropertyResolver ,重新实现了在PropertySources中查找PropertySource的接口,增加了对PlaceHolder的解析的接口。

PropertyResolver 的主要目的就是查找配置(.properties,环境变量)
PropertySource 则用途更全面。
奇怪的是PropertySource 被设计为abstract class,而PropertyResolver
被设计成interface。
分享到:
评论

相关推荐

    springboot注解@PropertySource使用Demo

    你可以下载并运行这个示例来实践和学习`@PropertySource`的用法。 总之,`@PropertySource`是Spring Boot中一个重要的配置工具,它帮助我们从外部文件中引入配置,使得应用程序的配置更加灵活,易于管理和维护。...

    Spring Cloud Kubernetes文档.pdf

    ConfigMap是Kubernetes用来存储非敏感配置数据的资源,Spring Cloud Kubernetes可以将其作为PropertySource,使得应用的配置可以从Kubernetes的ConfigMap动态加载。 **5.2. Secrets PropertySource** Secrets是...

    source of springdemo

    "source of springdemo" 提供了 SpringDemo 的源码,这是一个绝佳的学习和研究 Spring 框架实际应用的资源。本文将对 SpringDemo 的源码进行深入剖析,帮助读者理解和掌握 Spring 的核心概念与机制。 首先,Spring ...

    org.springframework.core_3.1.1.RELEASE.jar

    2. `org.springframework.core.env`: 提供了环境抽象,包括属性源(PropertySource)和配置环境(Environment)。`Environment`接口允许获取和设置系统属性、环境变量以及自定义属性,是Spring应用上下文的重要组成...

    spring官方文档pdf

    - Spring 3.1版本中新增了缓存抽象、Bean定义概要、环境抽象和PropertySource抽象。 - 支持Hibernate 4.x版本,增强了与Hibernate的集成能力。 - 测试框架改进,增强了对@configuration类和bean定义概要文件的...

    spring-boot源码

    Spring Boot支持使用YAML或Properties格式的配置文件,提供了`ConfigFileApplicationListener`和`PropertySource`来处理这些配置,使得配置文件的结构更加清晰,易于管理和扩展。 7. **Spring Boot DevTools**: ...

    Spring&Mybatis&SpringMVC总结笔记-最全最基础.pdf

    Spring全家桶中常见的注解包括@Controller、@RestController、@Service、@Repository、@Component、@Configuration、@Resource、@Bean、@Value、@PropertySource、@ResponseBody、@RequestMapping、@SpringBoot...

    spring-demo09-读取properties配置文件内容.zip

    但在非Spring Boot的Spring项目中,可以使用`@PropertySource`注解显式指定配置文件的位置: ```java @Configuration @PropertySource("classpath:config.properties") public class AppConfig { @Value("${...

    Spring Framework version 3.2 官方教程

    4. PropertySource抽象,用于从不同的源加载属性文件。 5. Spring XML命名空间的代码等效支持,使得用户可以通过Java配置来替代XML配置。 6. 支持Hibernate 4.x版本。 测试方面,支持了针对配置类(@Configuration...

    spring-cloud-config-server 源码电子书

    2. propertySource字段:定义了一个环境属性源,这里用MapPropertySource来存储一个属性,并初始化一个键为"spring.cloud.config.enabled"的属性,其值为"false"。这表示默认情况下,Config Server的配置客户端功能...

    spring_day02_spring_

    标题“spring_day02_spring_”和描述“heima spring source code day 02”表明这是一份关于Spring框架的深入学习资料,主要聚焦在源码分析上,特别是针对第一天学习后的第二天内容。标签“spring”进一步确认了讨论...

    Spring集成Jpa(Hibernate实现)

    @PropertySource("classpath:database.properties") public class DatabaseConfig { // 数据源配置、JPA供应商配置等 } ``` 5. **依赖管理**:在项目中,我们需要添加对应的依赖库,包括Spring Data JPA、...

    Spring的配置以及事件注入

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(DI)和面向切面编程(AOP)功能而闻名。...通过SpringLesson1中的示例,你可以更深入地学习这两个主题,并在实际项目中应用它们。

    logback-spring.xml日志打印demo

    &lt;springProperty name="logLevel" source="logging.level.root"/&gt; ``` 这里`logLevel`是自定义变量名,`source`则是Spring Boot的配置属性,如`logging.level.root`控制应用的根日志级别。 4. **`&lt;appender&gt;`...

    对spring做java注解扩展

    `@Import`可以导入其他配置类,`@PropertySource`加载属性文件,`@Value`注入属性值。 通过上述方式,我们可以看到Spring框架如何通过Java注解极大地简化了配置和编程模型。在实际项目中,理解并熟练掌握这些注解的...

    SpringBoot企业级开发教程教学大纲.pdf

    注解@ConfigurationProperties和@Value的注入属性方式会被详细比较,以及如何使用@PropertySource和@ImportResource加载不同类型的配置文件。使用@Configuration编写自定义配置类和Profile文件进行多环境配置是本章...

    Java企业级信息系统开发学习笔记

    * 学习了如何使用 @PropertySource 注解加载配置文件 * 了解了如何使用 @Value 注解注入配置值 第 16 篇 Java 企业级开发学习总结 * 总结了 Java 企业级信息系统开发的知识点 * 回顾了 Spring 框架、MyBatis 框架...

    com.smart.spring.zip

    同时,`@Import`可以引入其他配置类,`@PropertySource`加载属性文件,`@Value`注入属性值,这些注解让配置变得动态且易于理解。 4. **测试支持**: 压缩包可能还包含了使用`@RunWith(SpringRunner.class)`、`@...

    springboot和springcloud的面试题.docx

    - **@PropertySource注解导入支持**:Properties格式支持通过`@PropertySource`注解来导入外部配置文件,而YAML格式则不支持该注解。 #### 三、Spring Boot热部署机制 1. **实现方式**: - **使用DevTools**:...

    Springboot学习笔记大全.docx

    对于属性配置,Spring Boot支持使用`@PropertySource`来加载`.properties`文件,实现外部化配置。这样,我们可以将敏感或环境相关的设置放在外部文件中,而不是硬编码在代码里。加载属性文件后,可以使用`@Value`...

Global site tag (gtag.js) - Google Analytics