SpringBoot-读取配置文件(映射法)
【摘要】 该指南介绍了如何通过注解和属性文件来加载和访问应用程序的配置信息。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模块里重新编译
二、编写配置信息
我的配置信息如下:
1、application.yml
spring:
profiles:
active: dev
thymeleaf:
view-names: /*
cache: false
prefix: /WEB-INF/html
2、application-dev.yml
server:
port: 8080
spring:
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
三、使用注解读取配置
使用注解读取配置有两种方法,两种方法都是通过在实体类中通过配置注解,完成配置文件的字段和实体类属性的绑定。
1、使用@ConfigurationProperties注解
创建实体类DatabaseConfig。
DatabaseConfig的属性和想要获取的配置属性一一对应;
@ConfigurationProperties(prefix = “spring.datasource”)注解写在类名前,其中spring.datasource是yml文件里所需属性的位置;
package com.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "spring.datasource")
public class DatabaseConfig {
private String url;
private String username;
private String password;
}
2、使用@Value注解
创建实体类DatabaseConfigTest
DatabaseConfigTest的属性和想要获取的配置属性一一对应;
@Value("${spring.datasource.username}")注解写在每个属性前,其中spring.datasource.username是实体类属性对应的yml文件里的属性;
package com.entity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Getter
@Setter
@Component
public class DatabaseConfigTest {
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
}
四、测试注解配置是否生效
我们编写测试代码,运行测试。
@Test
void testConfigActive() {
String url = databaseConfig.getUrl();
String username = databaseConfig.getUsername();
String password = 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);
}
右键运行。
我们看到控制台输出的测试结果,两个方法都可以获得到配置文件里参数的值。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)