SpringBoot-读取配置文件(映射法)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 本文是关于Spring Boot框架下读取配置文件的指南。该指南介绍了如何通过注解和属性文件来加载和访问应用程序的配置信息。Spring Boot提供了简单而强大的功能,可以轻松地加载各种类型的配置文件,并将其映射到Java对象中。通过使用@ConfigurationProperties注解,或者使用@Value注解从配置文件中读取属性值。

本文是关于Spring Boot框架下读取配置文件的指南。该指南介绍了如何通过注解和属性文件来加载和访问应用程序的配置信息。Spring Boot提供了简单而强大的功能,可以轻松地加载各种类型的配置文件,并将其映射到Java对象中。通过使用@ConfigurationProperties注解,或者使用@Value注解从配置文件中读取属性值。


一、配置springboot配置注解处理器

1、在pom.xml文件中添加依赖,并点击maven刷新的按钮。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>

2、maven模块里重新编译


二、编写配置信息

我的配置信息如下:

application.yml

spring:  profiles:    active: dev
  thymeleaf:    view-names: /*
    cache: false    prefix: /WEB-INF/html

application-dev.yml

server:  port: 8080spring:  datasource:#替换成MySQL账户    username: root
#替换成MySQL密码    password: root
#替换成数据库名    url: jdbc:mysql://localhost:3306/db_monitor?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.jdbc.Driver
  application:## 注册服务名    name: MonitorSystem
mybatis:  mapper-locations: classpath:mappers/*Mapper.xml
  type-aliases-package: com.entity
logging:  level:    com:      example:        mapper: debug

三、使用注解读取配置

使用注解读取配置有两种方法,两种方法都是通过在实体类中通过配置注解,完成配置文件的字段和实体类属性的绑定。

①使用@ConfigurationProperties注解

创建实体类DatabaseConfig。

DatabaseConfig的属性和想要获取的配置属性一一对应;

@ConfigurationProperties(prefix = “spring.datasource”)注解写在类名前,其中spring.datasource是yml文件里所需属性的位置;

DatabaseConfig.java

packagecom.entity;
importlombok.Getter;
importlombok.Setter;
importorg.springframework.boot.context.properties.ConfigurationProperties;
importorg.springframework.stereotype.Component;
@Getter@Setter@Component@ConfigurationProperties(prefix="spring.datasource")
publicclassDatabaseConfig {
privateStringurl;
privateStringusername;
privateStringpassword;
}

②使用@Value注解

创建实体类DatabaseConfigTest

DatabaseConfigTest的属性和想要获取的配置属性一一对应;

@Value(“${spring.datasource.username}”)注解写在每个属性前,其中spring.datasource.username是实体类属性对应的yml文件里的属性;

packagecom.entity;
importlombok.Getter;
importlombok.Setter;
importorg.springframework.beans.factory.annotation.Value;
importorg.springframework.stereotype.Component;
@Getter@Setter@ComponentpublicclassDatabaseConfigTest {
@Value("${spring.datasource.url}")
privateStringurl;
@Value("${spring.datasource.username}")
privateStringusername;
@Value("${spring.datasource.password}")
privateStringpassword;
}

四、测试注解配置是否生效

我们编写测试代码,运行测试。

@TestvoidtestConfigActive() {
Stringurl=databaseConfig.getUrl();
Stringusername=databaseConfig.getUsername();
Stringpassword=databaseConfig.getPassword();
System.out.println("url: "+url);
System.out.println("username: "+username);
System.out.println("password: "+password);
url=databaseConfigTest.getUrl();
username=databaseConfigTest.getUsername();
password=databaseConfigTest.getPassword();
System.out.println("url: "+url);
System.out.println("username: "+username);
System.out.println("password: "+password);
 }

右键运行。

我们看到控制台输出的测试结果,两个方法都可以获得到配置文件里参数的值。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
19 1
|
1天前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
17 8
|
10天前
|
JavaScript 前端开发 Java
SpringBoot_web开发-webjars&静态资源映射规则
https://www.91chuli.com/ 举例:jquery前端框架
12 0
|
10天前
|
关系型数据库 MySQL Java
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
20 0
|
6月前
|
前端开发 JavaScript Java
Springboot图片上传和映射
Springboot图片上传和映射
|
JSON 前端开发 Java
SpringBoot后端接口请求参数映射方式详解
SpringBoot后端接口请求参数映射方式详解
833 0
|
6月前
|
Java
SpringBoot 映射路径中 匹配正则表达式
SpringBoot 映射路径中 匹配正则表达式
176 0
|
6月前
|
缓存 前端开发 JavaScript
SpringBoot中静态资源映射处理
SpringBoot中静态资源映射处理
74 0
|
Java
【SpringBoot】静态资源映射方式
【SpringBoot】静态资源映射方式
172 0
|
Java Nacos Spring
springboot 配置文件中的属性映射到实体类的属性中
springboot 配置文件中的属性映射到实体类的属性中