前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot-读取配置文件(映射法)

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

原创
作者头像
Damon小智
发布2024-04-30 23:42:38
1040
发布2024-04-30 23:42:38
举报
文章被收录于专栏:全栈文档库全栈文档库

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

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

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

代码语言:xml
复制
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

2、maven模块里重新编译


二、编写配置信息

我的配置信息如下:

1、application.yml

代码语言:yaml
复制
spring:
  profiles:
    active: dev
 
  thymeleaf:
    view-names: /*
    cache: false
    prefix: /WEB-INF/html

2、application-dev.yml

代码语言:yaml
复制
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文件里所需属性的位置;

代码语言:java
复制
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文件里的属性;

代码语言:java
复制
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;
}

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

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

代码语言:java
复制
@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);
}

右键运行。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、配置springboot配置注解处理器
    • 1、在pom.xml文件中添加依赖,并点击maven刷新的按钮。
      • 2、maven模块里重新编译
      • 二、编写配置信息
        • 1、application.yml
          • 2、application-dev.yml
          • 三、使用注解读取配置
            • 1、使用@ConfigurationProperties注解
              • 2、使用@Value注解
              • 四、测试注解配置是否生效
              相关产品与服务
              云数据库 MySQL
              腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档