本文是关于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 /* cachefalse prefix /WEB-INF/html
application-dev.yml
server port8080spring 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; 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; publicclassDatabaseConfigTest { "${spring.datasource.url}") (privateStringurl; "${spring.datasource.username}") (privateStringusername; "${spring.datasource.password}") (privateStringpassword; }
四、测试注解配置是否生效
我们编写测试代码,运行测试。
voidtestConfigActive() { 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); }
右键运行。
我们看到控制台输出的测试结果,两个方法都可以获得到配置文件里参数的值。