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);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2009-11-01 哈希 + LIST简单应用(DELPHI)