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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 本文是关于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);
 }

右键运行。

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
11月前
|
存储 前端开发 Java
Springboot静态资源映射及文件映射
在Spring Boot项目中,为了解决前端访问后端存储的图片问题,起初尝试通过静态资源映射实现,但发现这种方式仅能访问打包时已存在的文件。对于动态上传的图片(如头像),需采用资源映射配置,将特定路径映射到服务器上的文件夹,确保新上传的图片能即时访问。例如,通过`addResourceHandler(&quot;/img/**&quot;).addResourceLocations(&quot;file:E:\\myProject\\forum_server\\&quot;)`配置,使前端可通过URL直接访问图片。
737 0
Springboot静态资源映射及文件映射
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
287 8
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
596 1
|
XML 安全 Java
Spring Boot中使用MapStruct进行对象映射
本文介绍如何在Spring Boot项目中使用MapStruct进行对象映射,探讨其性能高效、类型安全及易于集成等优势,并详细说明添加MapStruct依赖的步骤。
522 0
|
JavaScript 前端开发 Java
SpringBoot_web开发-webjars&静态资源映射规则
https://www.91chuli.com/ 举例:jquery前端框架
204 0
|
关系型数据库 MySQL Java
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
286 0
|
JSON 前端开发 Java
SpringBoot后端接口请求参数映射方式详解
SpringBoot后端接口请求参数映射方式详解
1347 0
|
前端开发 JavaScript Java
Springboot图片上传和映射
Springboot图片上传和映射
464 0
|
Java
SpringBoot 映射路径中 匹配正则表达式
SpringBoot 映射路径中 匹配正则表达式
450 0
|
缓存 前端开发 JavaScript
SpringBoot中静态资源映射处理
SpringBoot中静态资源映射处理
335 0

热门文章

最新文章