首页 > 其他分享 >Spring6 探析之@PropertySource 注解

Spring6 探析之@PropertySource 注解

时间:2023-05-26 21:12:38浏览次数:42  
标签:PropertySource 配置文件 default value 探析 注解 Spring6

Spring6 探析之@PropertySource 注解

介绍

@PropertySource 注解用于加载配置类,在使用 Spring 时,我们可以使用 @PropertySource 注解将自定义的配置文件加载到 Spring 中,方便我们的自定义的开发

下面是 @PropertySource 的源码

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(PropertySources.class)
public @interface PropertySource {

	String name() default "";

	String[] value();

	boolean ignoreResourceNotFound() default false;

	String encoding() default "";

	Class<? extends PropertySourceFactory> factory() default PropertySourceFactory.class;

}

可以看到,该注解只能标注在类上,它有以下参数

  • name: 可为空,表示配置文件的名字
  • value: 配置文件的路径
  • ignoreResourceNotFound: 配置文件是否可以找不到,默认不可以——找不到会报错
  • encoding: 配置文件的编码,注意,默认非 utf-8
  • factory:读取配置文件的工厂类,默认是 PropertySourceFactory

我们再看一下 @PropertySources 注解的源码,它可以包含多个 @PropertySource 注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PropertySources {

	PropertySource[] value();

}

使用

在 resources 目录下创建配置文件 config.properties,里面有如下内容

image-20230526205429906

创建配置类,使用 @PropertySource 注解加载配置文件

image-20230526205513445

拿到配置文件的内容并打印出来

image-20230526205534421

image-20230526205542544

标签:PropertySource,配置文件,default,value,探析,注解,Spring6
From: https://www.cnblogs.com/acdongla/p/17435802.html

相关文章

  • Spring6 探析之@Import 注解
    Spring6探析之@Import注解简介@Import注解与@Bean注解的作用相同,都可以将实例注册到IOC中,但区别是,@Import只能作用在类上,并且使用@Import时,不需要再使用@Configuration注解下面是@Import的源码@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documen......
  • Spring6 探析之@Bean 注解
    Spring6探析之@Bean注解介绍@Bean是spring的常用注解,他可以标记在方法和注解上,可以将方法的返回值放在IOC容器中,它又以下特点单例可指定bean的名称可控制bean的初始化与销毁方法让我们看一下@Bean的源码吧@Target({ElementType.METHOD,ElementType.ANNOTATION_TYPE})......
  • Spring6 探析之@Configuration 注解
    Spring6探析之@Configuration注解介绍@Configuration注解大家都不陌生,该注解有以下特点必须在类上使用能够将被注解的类加载到IOC容器里能够将类中被@Bean注解标记的方法加载到IOC容器里@Configuration有一些参数,其中最值得关注的是proxyBeanMethods,该参数值默认为tr......
  • Tomcat10依赖问题 jakarta.servlet-api 6.0.0 spring6.x.x
    org.springframework.web.servlet.DispatcherServlet’isnotassignabletojavax.servlet.Servlet1、pom.xml配置<dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifact......
  • 架构师日记-从数据库发展历程到数据结构设计探析
    作者:京东零售刘慧卿一数据库发展史起初,数据的管理方式是文件系统,数据存储在文件中,数据管理和维护都由程序员完成。后来发展出树形结构和网状结构的数据库,但都存在着难以扩展和维护的问题。直到七十年代,关系数据库理论的提出,以表格形式组织数据,数据之间存在关联关系,具有了良好......
  • 【Spring6】Spring是什么
    1.Spring是什么Spring是一款主流的JAVAEE轻量级开源框架,用于简化企业级应用的开发难度和开发周期。官网:spring.io2.Spring划分2.1广义指Spring生态,以SpringFram......
  • 跟老杜手撕Spring6教程(十)set注入专题-1
    set注入专题本篇文章是set注入专题,上篇说了构造注入​​https://blog.51cto.com/u_15485663/6132498​​配合视频教程观看,更易理解吸收,动力节点老杜的Spring6教程采用难度逐......
  • 跟老杜手撕Spring6教程(九)构造注入
    构造注入本篇文章说说构造注入,上篇说了Spring对IoC的实现​​https://blog.51cto.com/u_15485663/6120423​​配合视频教程观看,更易理解吸收,动力节点老杜的Spring6教程采用......
  • 手撕Spring6教程(六)第一个Spring程序的深度剖析
    第一个Spring程序详细剖析本篇文章说说Spring的第一个程序详细的剖析,上篇说了spring第一个程序的前期准备工作​​https://blog.51cto.com/u_15485663/6110947​​配合视频......
  • jdk17+spring6下打jar包
    由于特定情况,本机下有多个jdk,而JAVA_HOME又只有一个。本人习惯在命令行下一个命令编译打包程序,如何解决这个问题?研究了不少时间,得到了两个解决方案:1.使用bat  --......