Spring Boot读取Yml配置文件的3种方法

1 基础用法,使用@Value注解直接注入配置信息

1
2
@Value("${spring.datasource.username}")
private String name;

2 使用注解@Autowired注入Environment类

1
2
3
4
@Autowired
private Environment environment;
 
    String username = environment.getProperty("spring.datasource.username");

3 定义一个工具类,使用@Component注解成为配置类,再继承ApplicationRunner 重写run(),再注入Environment 类获取配置,可以做到在任何地方随时随地获取配置信息

复制代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Component
@Order(2)
public class BaseConfig implements ApplicationRunner {
    @Autowired
    private Environment environment;
    
    public static String port;


    @Override
    public void run(ApplicationArguments args) throws Exception {
        port=environment.getProperty("server.port");

        System.out.println("------ " + port);
    }
}
复制代码

使用的时候直接调用静态类,程序一次读取,使用的时候调用

4 读取配置封装成配置类

复制代码
package com.zls.zzz.utils;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "person")
public class Personex {
    private  String lastName;
    private  String age;


    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "person{" +
                "lastName='" + lastName + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}

配置文件
person:
  lastName: hello
  age: 19

  • @Component:表明当前类是一个 Java Bean
  • @ConfigurationProperties(prefix = “author”):表示获取前缀为 author 的配置信息
 
复制代码

 

调用代码

复制代码
    @Autowired
    private Environment environment;

    @Autowired
    private BaseConfig baseConfig;

    @Autowired
    private Personex personex;


    @Value("${spring.datasource.username}")
    private String name;

        String username = environment.getProperty("spring.datasource.username");
        System.out.println(username);
        System.out.println(name);


        System.out.println(baseConfig.port);

        System.out.println(personex);
复制代码

 

posted @   谭志宇  阅读(1209)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2009-11-01 哈希 + LIST简单应用(DELPHI)
点击右上角即可分享
微信分享提示