当前位置: 首页 > news >正文

福建城乡建设部网站首页最新新闻实时新闻

福建城乡建设部网站首页,最新新闻实时新闻,织梦下载网站模板,新浪nba最新消息文章目录一、简单介绍二、注解说明1. 注解源码① PropertySource注解② PropertySources注解2. 注解使用场景3. 使用案例(1)新增test.properties文件(2)新增PropertySourceConfig类(3)新增PropertySourceTe…

文章目录

  • 一、简单介绍
  • 二、注解说明
    • 1. 注解源码
      • ① @PropertySource注解
      • ② @PropertySources注解
    • 2. 注解使用场景
    • 3. 使用案例
      • (1)新增test.properties文件
      • (2)新增PropertySourceConfig类
      • (3)新增PropertySourceTest类
      • (4)运行PropertySourceTest类

一、简单介绍

在日常开发中,你有没有遇到过这样一种场景:项目中需要编写很多配置文件,将一些系统信息配置化,此时,往往需要编写专门的工具类或者方法来读取并解析这些配置文件,将配置文件中的配置项内容加载到系统内存中。后续在使用这些配置项时,可以直接通过工具类或者方法获取加载到内存中的配置项。
@PropertySource注解就是Spring中提供的一个可以加载配置文件的注解,并且可以将配置文件中的内容存放到Spring的环境变量中。

二、注解说明

@PropertySource注解是Spring中提供的一个通过指定配置文件位置来加载配置文件的注解,并且可以将配置文件中的内容存放到Spring的环境变量中。除了可以通过Spring的环境变量读取配置项之外,还可以通过@Value注解获取配置项的值。
另外,Spring中还提供了一个@PropertySources注解,在@PropertySources注解中,可以引入多个@PropertySource注解。

1. 注解源码

Spring中提供了@PropertySource和@PropertySources两个注解来加载配置文件。

① @PropertySource注解

@PropertySource注解只能标注到类上,能够通过指定配置文件的位置来加载配置文件,@PropertySource注解除了可以加载properties配置文件外,也可以加载xml配置文件和yml配置文件。如果加载yml配置文件时,可以自定义PropertySourceFactory实现yml配置文件的解析操作。

@PropertySource注解的源码详见:

/*** @author Chris Beams* @author Juergen Hoeller* @author Phillip Webb* @author Sam Brannen* @since 3.1*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(PropertySources.class)
public @interface PropertySource {String name() default "";String[] value();/*** @since 4.0*/boolean ignoreResourceNotFound() default false;/*** @since 4.3*/String encoding() default "";/*** @since 4.3*/Class<? extends PropertySourceFactory> factory() default PropertySourceFactory.class;
}

从源码可以看出,@PropertySource注解是从Spring3.1版本开始提供的注解,注解中各个属性的含义如下所示:

  • name:表示加载的资源的名称,如果为空,则会根据加载的配置文件自动生成一个名称。
  • value:表示加载的资源的路径,这个路径可以是类路径,也可以是文件路径。
  • ignoreResourceNotFound:表示当配置文件未找到时,是否忽略文件未找到的错误。默认值为false,也就是说当未找到配置文件时,Spring启动就会报错。
  • encoding:表示解析配置文件使用的字符集编码。
    factory:表示读取对应配置文件的工厂类,默认的工厂类是PropertySourceFactory。

② @PropertySources注解

除了@PropertySource注解,Spring中还提供了一个@PropertySources注解。

/*** @author Phillip Webb* @since 4.0*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PropertySources {PropertySource[] value();
}

从源码可以看出,@PropertySources是从Spring4.0版本开始提供的注解,在@PropertySources注解中,只提供了一个PropertySource数组类型的value属性。所以,@PropertySources注解可以引入多个@PropertySource注解。

2. 注解使用场景

  • 在基于Spring的注解开发项目的过程中,由于不再使用Spring的XML文件进行配置,如果将配置项直接写到类中,就会造成配置项与类的紧耦合,后续对于配置项的修改操作非常不方便,不利于项目的维护和扩展。此时,可以将这些配置项写到properties文件或者yml文件中,通过@PropertySource注解加载配置文件。
  • 另外,如果项目本身就存在大量的properties配置文件或者yml配置文件,也可以统一由Spring的@PropertySource注解进行加载。

3. 使用案例

本节,主要实现一个通过@PropertySource注解加载properties配置文件,将properties配置文件中的配置项加载到Spring的环境变量中,获取Spring环境变量中配置项的值,并进行打印。案例的具体实现步骤如下所示。

(1)新增test.properties文件

resources目录下新增test.properties文件,文件内容如下所示:

name=lwk
age=18

(2)新增PropertySourceConfig类

@Configuration
@PropertySource(value = "classpath:test.properties")
public class PropertySourceConfig {
}

可以看到,PropertySourceConfig类是Spring的配置类,并且使用@PropertySource注解指定了test.properties配置文件的路径。

(3)新增PropertySourceTest类

public class PropertySourceTest {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(PropertySourceConfig.class);ConfigurableEnvironment environment = context.getEnvironment();System.out.println(environment.getProperty("name") + " ====>>> " + environment.getProperty("age"));}
}

可以看到,在PropertySourceTest类的main()方法中,通过AnnotationConfigApplicationContext类的对象获取到ConfigurableEnvironment类型的环境变量对象environment,然后通过environment对象获取配置文件中的name和age的值并进行打印。

(4)运行PropertySourceTest类

可以看到,正确的输出了配置文件中的值。

lwk ====>>> 18

说明:使用@PropertySource注解可以加载properties配置文件中的配置项,并将配置项加载到Spring的环境变量中,通过Spring的环境变量就可以获取到配置项的值。

http://www.tj-hxxt.cn/news/47493.html

相关文章:

  • 上海seo网站设计seo网站排名全选
  • 北京互联网网站建设seo快排优化
  • php网站 config各大免费推广网站
  • 深圳企业网站制作公司查询营销型网站建设优化建站
  • 建设网站前需要的市场分析网站排名掉了怎么恢复
  • 浙江网站建设推广公司找哪家富阳网站seo价格
  • 做推广网络百度搜索优化关键词排名
  • 南京网站建设 seo直播:韩国vs加纳直播
  • 福州网站建设兼职长春seo
  • 做网站赚钱还是企业宣传片aso优化分析
  • 建设产品网站课程免费域名的网站
  • 福州网站建设推广公司南京疫情最新消息
  • 网站的登记表是怎么做的营销中存在的问题及对策
  • 网站主页图片设计宁波seo快速优化教程
  • 拉萨网站设计中国新闻网最新消息
  • 企业网站排名要怎么做百度识图 上传图片
  • 中信建设有限责任公司总经理网站网络排名优化方法
  • 云浮网站建设制作网站的步骤
  • 电商营销是什么意思网站关键字优化软件
  • 自己怎么做单页网站中国营销网站
  • 天津公司建站seo技术分享免费咨询
  • 无许可证做新闻网站会怎么样软文范例大全100字
  • 沈阳网站建设优秀公司武汉seo首页
  • 高州网站设计ks免费刷粉网站推广
  • 南通seo网站诊断网站流量统计工具
  • 网站开发与管理期末考试网站seo优化8888
  • 大庆市萨尔图区建设局网站营销推广策划方案范文
  • 南通网站建百度广告费一般多少钱
  • 五合一网站建设对网站外部的搜索引擎优化
  • 中国著名的做网站渗透网络广告营销典型案例