Spring中读取配置文件的五种方式

 更新时间:2024年10月11日 11:29:58   作者:A杨宽A  
在使用spring或springboot项目开发中,难免会涉及到读取配置文件的各种配置参数的情况,因为当项目的规模上去之后,在单个配置文件中维护所有的配置信息很难满足实际的需要,所以本文给大家介绍了Spring读取配置文件多种方式,需要的朋友可以参考下

Spring中读取配置文件的五种方式

  1. @Value:只能读取单个配置项
  2. @ConfigurationProperties:可以一次性读取多个配置项,将多个配置项转换为Bean对象。需要配合prefix使用。
  3. @PropertySource+@Value:获取自定义配置文件的单个配置项。
  4. @PropertySource+@ConfigurationProperties:获取自定义配置文件的多个配置项。
  5. Environment的getProperty方法获取,很少使用。

举例说明:

第一种:@Value注解方式获取

application.yml

server:
  port: 9201

取值方式:

    @Value("${server.port}")
    private String port;

第二种:@ConfigurationProperties注解方式获取

application.yml

student:
  name: 张三
  age: 18

取值方式:

@Configuration
@ConfigurationProperties(prefix = "student")
public class CaptchaProperties{
	private String name;
	private Integer age;
	...
}

注:需要配和@Component使用,本文中使用的@Configuration,我们查看Configuration注解会发现它使用了@Component注解

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
...
}

第三种:@PropertyResource + @Value注解方式获取,可读取自定义配置文件。只支持读取.properties类型的配置文件,yml类型的配置文件需要自定义。

student.properties

student.name = 张三
student.age = 18

取值方式:

@Component
@PropertyResouce(value = "classpath:student.properties")
public class Student implements Serializable{
	@Value("${student.name}")
	private String name;
	
	@Value("${student.age}")
	private Integer age;
	...
}

第四种:@PropertyResource + @ConfigurationProperties注解方式获取,可读取自定义配置文件。只支持读取.properties类型的配置文件,yml类型的配置文件需要自定义。

student.properties

student.name = 张三
student.age = 18

取值方式:

/**
 * @Component标识为是Spring的一个组件,只有容器组件,容器才会为ConfigurationProperties提供此注入共    	
 * 功能
 */
@Component
@PropertyResouce(value = "classpath:student.properties")
@ConfigurationProperties(prefix = "student")
public class Student implements Serializable{
	private String name;
	private Integer age;
	...
}

第五种:Environment方式读取,基本很少使用

application.yml

student:
  name: 张三
  age: 18

取值方式:

...
@Autowired
private Environment env;

public String getUserName(){
	return env.getProperty("student.name");
}
...

以上就是Spring中读取配置文件的五种方式的详细内容,更多关于Spring读取配置文件的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot和VUE源码直接整合打包成jar的踩坑记录

    SpringBoot和VUE源码直接整合打包成jar的踩坑记录

    这篇文章主要介绍了SpringBoot和VUE源码直接整合打包成jar的踩坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Java中的@PostConstruct注解的使用

    Java中的@PostConstruct注解的使用

    本文主要介绍了Java中的@PostConstruct注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • IDEA新建springboot项目时未生成pom.xml文件的解决操作

    IDEA新建springboot项目时未生成pom.xml文件的解决操作

    这篇文章主要给大家介绍了关于IDEA新建springboot项目时未生成pom.xml文件的解决操作方法,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • 详解Java的MyBatis框架中的事务处理

    详解Java的MyBatis框架中的事务处理

    利用MyBatis框架的配置管理比直接使用JDBC API编写事务控制要来得更加轻松,这里我们就来详解Java的MyBatis框架中的事务处理,尤其是和Spring框架集成后更加exciting
    2016-06-06
  • 命令行使用支持断点续传的java多线程下载器

    命令行使用支持断点续传的java多线程下载器

    java命令行下载器,支持断点续传下载,多线程下载,需要的朋友可以参考下
    2014-02-02
  • Java实现获取指定个数的不同随机数

    Java实现获取指定个数的不同随机数

    今天小编就为大家分享一篇关于Java实现获取指定个数的不同随机数,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Java常见异常及处理方式总结

    Java常见异常及处理方式总结

    今天给大家带来的是Java的相关知识,文章围绕着Java异常展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Spring Security跳转页面失败问题解决

    Spring Security跳转页面失败问题解决

    这篇文章主要介绍了Spring Security跳转页面失败问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 详解Java读取本地文件并显示在JSP文件中

    详解Java读取本地文件并显示在JSP文件中

    这篇文章主要介绍了详解Java读取本地文件并显示在JSP文件中的相关资料,这里提供实例帮助大家实现这样的功能,希望能帮助到大家,需要的朋友可以参考下
    2017-08-08
  • 使用Spring Batch实现大数据处理的操作方法

    使用Spring Batch实现大数据处理的操作方法

    通过使用Spring Batch,我们可以高效地处理大规模数据,本文介绍了如何配置和实现一个基本的Spring Batch作业,包括读取数据、处理数据和写入数据的全过程,感兴趣的朋友跟随小编一起看看吧
    2024-07-07

最新评论