SpringBoot项目读取配置文件信息

简介: 当我们项目比较大配置信息比较多的时,如果所有的配置信息都放在一个配置文件中,就会显得比较臃肿且不易理解和维护。

第一种:@ConfigurationProperties



@ConfigurationProperties注解用于读取指定前缀的一组配置信息并与bean绑定,具体的配置属性会绑定到bean的成员属性中即前缀名+成员属性名等于配置文件中的key。之后可以像使用其他bean一样使用该bean并读取配置信息。


user:
 name: zhangsan
 sex: 男
 homeUrl: www.xxx.com


配置文件如上


@Component
@Data
@ConfigurationProperties(prefix = "user")
public class User {
  private String name;
  private String sex;
  private String homeUrl;
}


当我们项目比较大配置信息比较多的时,如果所有的配置信息都放在一个配置文件中,就会显得比较臃肿且不易理解和维护。此时,我们可以按照需求将该配置文件拆分为多个,并使用@PropertySource注解配合@Value或@ConfigurationProperties读取指定配置文件中的配置信息。假设我们存储数据连接信息的配置文件为jdbc.properties,内容如下:


jdbc:
 account: zhangsan
 pwd: 123456
@Component
@Data
@PropertySource(value = {"classpath:jdbc.properties"})
@ConfigurationProperties(prefix = "jdbc")
public class JdbcCfg {
  private String account;
  private String pwd;
  public void connectDb() {
    System.out.println("Database has connected, jdbc account is "
      + account + ", password is " + pwd);
  }
}


2、通过@Value方式来读取配置信息



local:
  ip:
    addr: 192.168.137.220-yml
@Value("${local.ip.addr}")
String addr;
//这里可以设置默认值,如果没有改配置项,给改配置项添加默认值
@Value("${local.ip.port:9000}")
String port;
@Value("${user.dir}")
String userDir;
//这玩意可以定位读取哪个文件
@PropertySource(value = {"classpath:jdbc.properties"})

95768b13fb4d442abfd3d556f05a6457.png


第三种:PropertiesLoaderUtils读取



ClassPathResource resource = new ClassPathResource("application.properties");  
try {    
 Properties properties = PropertiesLoaderUtils.loadProperties(resource);   
    String account = properties.getProperty("jdbc.account");        
} catch (IOException e) {    
 …… 
}



相关文章
|
2月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
117 1
SpringBoot获取项目文件的绝对路径和相对路径
|
2月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
60 8
|
2月前
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
247 2
|
2月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
51 2
|
2月前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
151 3
|
2月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
60 2
|
2月前
|
前端开发 Java Spring
SpringBoot项目thymeleaf页面支持词条国际化切换
SpringBoot项目thymeleaf页面支持词条国际化切换
83 2
|
2月前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
56 1
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
43 0