首页 > 编程语言 >SpringBoot(四):java从配置文件中取值的方式

SpringBoot(四):java从配置文件中取值的方式

时间:2022-11-27 23:24:21浏览次数:51  
标签:java name 配置文件 url String val password public SpringBoot

一、SpringBoot项目中取yaml配置文件中的值

application.yaml

test:
  url: localhost:8080
  name: root
  password: 123456
  val:
    a: 1
    b: 2
    c: 3

TestConfig.class

@Component
@ConfigurationProperties(prefix = "test")
public class TestConfig {
    private String url;
    private String name;
    private String password;
    private Map<String, Object> val;

    public TestConfig() {
    }

    public TestConfig(String url, String name, String password, Map<String, Object> val) {
        this.url = url;
        this.name = name;
        this.password = password;
        this.val = val;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Map<String, Object> getVal() {
        return val;
    }

    public void setVal(Map<String, Object> val) {
        this.val = val;
    }

    @Override
    public String toString() {
        return "TestConfig{" +
                "url='" + url + '\'' +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", val=" + val +
                '}';
    }
}

测试类:

@SpringBootTest
class Springboot02ConfigApplicationTests {
    private TestConfig testConfig;

    @Autowired
    public void setTestConfig(TestConfig testConfig) {
        this.testConfig = testConfig;
    }
    @Test
    void contextLoads() {
        System.out.println(testConfig);
    }

}

测试结果:

在SpringBoot项目中取得yaml配置文件的内容,核心就是@ConfigurationProperties注解。

二、取properties配置文件中的值

jms.properties

url=localhost:8081
name=root1
password=1234567

TestConfig.class

@Component
@PropertySource("classpath:jms.properties")
public class TestConfig {
    @Value("${url}")
    private String url;
    @Value("${name}")
    private String name;
    @Value("${password}")
    private String password;
    private Map<String, Object> val;

    public TestConfig() {
    }

    public TestConfig(String url, String name, String password, Map<String, Object> val) {
        this.url = url;
        this.name = name;
        this.password = password;
        this.val = val;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Map<String, Object> getVal() {
        return val;
    }

    public void setVal(Map<String, Object> val) {
        this.val = val;
    }

    @Override
    public String toString() {
        return "TestConfig{" +
                "url='" + url + '\'' +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", val=" + val +
                '}';
    }
}

测试结果:

 

核心注解@Value,这里用到@propertySource是为了不不使用默认的application配置文件,若为application.properties,可不使用此注解。

三、普通项目中得到properties配置文件中的值

jdbc.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/blms?serverTimezone=UTC
name=root
password=123456

测试类

public class test {
    public static void main(String[] args) {
        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
        String driver = bundle.getString("driver");
        String url = bundle.getString("url");
        String name = bundle.getString("name");
        String password = bundle.getString("password");
        System.out.println(driver + "\n" + url + "\n" + name + "\n" + password);
    }
}

 

 

(本文仅作个人学习用,如有纰漏敬请指正)

 

标签:java,name,配置文件,url,String,val,password,public,SpringBoot
From: https://www.cnblogs.com/jmsstudy/p/16929342.html

相关文章

  • SpringBoot17(项目部署)
    一、大纲二、操作过程1-(启一个web项目,已经配置好Maven的,按图片步骤点击package)2-(如果打包成功后的效果,Maven一定要配置好)2.1-Bulidingjar:打包后jar包的"位置/路径......
  • Java: Threads
    Threadsallowsaprogramtooperatemoreefficientlybydoingmultiplethingsatthesametime.CreatingaThreadTherearetwowaystocreateathread.Itcan......
  • Java: Regular Expressions
    Pattern Class-Definesapattern(tobeusedinasearch)Matcher Class-UsedtosearchforthepatternPatternSyntaxException Class-Indicatessyntaxe......
  • Java中使用正则表达式
    1、使用 java.util.regex.Pattern类的 compole(表达式)方法把正则表达式变成一个对象。//表达式对象:1个数字和1个字母连续Patternpattern=P......
  • springboot的基本使用
    SpringBoot简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。使用了Spring框架后已经简化了我们的开发,而SpringBoot......
  • Java入门代码练习
    一、第一个Java程序1、helloworldpublicclassHello{publicstaticvoidmain(String[]args){System.out.println("Helloworld!");}}2、变量i......
  • Java Excel导出动态自定义单元格样式
    根据表格内容定义单元格样式效果图:文章描述两种,一种创建生成时定义样式,另一种在excel在写入文件前修改样式关键代码一/***数据动态设置样式*......
  • 用Java打印一个9层空心菱形
    publicclassRhombus{publicstaticvoidmain(Stringargs[]){      for(inti=1;i<=5;i++){  //i表示层数      //空格个数    ......
  • 第2-4-6章 springboot整合规则引擎Drools-业务规则管理系统-组件化-中台
    目录7.Spring整合Drools7.1Spring简单整合Drools7.1.1以上代码均在drools_spring项目中7.2Spring整合Drools+web7.2以上代码均在drools_springweb项目中7.3SpringBo......
  • springBoot mybatis-plus mySql代码生成器
    一、用到的依赖参考官网<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/X......