首页 > 其他分享 >SpringBoot03(读取配置内容)

SpringBoot03(读取配置内容)

时间:2022-11-05 23:33:40浏览次数:72  
标签:读取 person SpringBoot03 age 配置 String address public name

SpringBoot读取propriety/yml/yaml配置中的内容

3种方法

方法1 @value
@RestController
public class HelloController {

/*@Value("${XXXX}") 这个是@Value的固定格式,XXXX是配置在propriety/yml/yaml里面的内容
拿yml里面的文件举例子:
name1: 李四
person:
  name: chen
  age: 18
这样就有下面的 @Value("${name1}")和 @Value("${person.name}")和 @Value("${person.age}")
*/

    @Value("${name1}")
    private String name;

    @Value("${person.name}")
    private String name2;

    @Value("${person.age}")
    private int age;

    @Value("${address[0]}")
    private String address;

    @Value("${msg1}")
    private String msg1;

    @Value("${msg2}")
    private String msg2;


    @RequestMapping("hello2")
    public String Hello2() {
        System.out.println(" --> " + name);
        System.out.println(" --> " + name2);
        System.out.println(" --> " + age);
        System.out.println(" --> " + address);
        System.out.println(" --> " + msg1);
        System.out.println(" --> " + msg2);
        return "hello_SpringBoot";
    }
方法2:Environment
/*
1-用@Autowired
      private Environment environment;

2-调用方法:environment.getProperty("XXXX")  
//这个XXXX是propriety/yml/yaml里面的配置名,如果不懂请参考@Value里面的代码备注

*/
@RestController
public class HelloController {

    @Autowired
    private Environment environment;

    @RequestMapping("hello3")
    public String Hello3() {
        System.out.println(environment.getProperty("name1"));
        System.out.println(environment.getProperty("address[0]"));
        return "hello_SpringBoot3";
    }
方法3:@ConfigurationProperties

1-propriety/yml/yaml配置信息

#只是拿这个person来举例子
person:
  name: chen
  age: 18
  address:
    - fuzhou
    - jiangxi

2-我们现在需要把这个配置文件里面的person用@ConfigurationProperties方法读取出来,首先需要写一个Person的类

/*
1-先把propriety/yml/yaml里面需要配置的东西写成一个`类`
2- private String name;和 private int age;里面的name、age是propriety/yml/yaml里面名字一样的
eg:propriety/yml/yaml里面是这样:
person:
  name: chen
  age: 18
  address:
    - fuzhou
    - jiangxi
 */


@Component
@ConfigurationProperties(prefix = "person")
//@ConfigurationProperties(prefix = "person") 这个需要定义:定义一下你需要导入的是哪个配置,我这个和注释一样导入person,一般和这个类名定义一致
public class Person {
    private String name;
    private int age;
    private String[] address;

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", address=" + Arrays.toString(address) +
                '}';
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public String[] getAddress() {
        return address;
    }

    public void setAddress(String[] address) {
        this.address = address;
    }


}

3-把他打印出来(因为1-类有get、set方法,又因为2-@ConfigurationProperties(prefix = "person"))把配置文件内容赋值给Person类了,所以直接打印出来就是配置文件的内容了)

@RestController
public class HelloController {

    @Autowired
    private Person person;

    @RequestMapping("hello4")
    public String Hello4() {

        System.out.println(person);//把类的信息打印出来

        String[] address = person.getAddress();
        for (String add:address) {
            System.out.println(add);
        }
        return "hello_SpringBoot4";
    }

}

4-出现的问题:在自定义的Person类中

解决:
1-点击Open Documentation
2-找到这个依赖

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

3-加到pom.xml里面

4-效果:以后写配置文件会有提示

标签:读取,person,SpringBoot03,age,配置,String,address,public,name
From: https://www.cnblogs.com/chen-zhou1027/p/16861692.html

相关文章

  • sonarqube-postgresql-sonar-scanner安装配置linux
    1、上传jdk、sonarqube、postgresql到服务器1.1、jdk11下载1.2、sonarqube下载1.3、postgresql下载2、jdk安装配置#解压tar-zxvfOpenJDK11U-jdk_x64_linux_hotspo......
  • 盘点一个Pandas新手在文件读取路上遇到的问题
    大家好,我是皮皮。一、前言国庆期间在Python铂金交流群【暮雨和】问了一个Pandas处理的问题,提问截图如下:代码截图如下:新手上路,遇到的问题还是挺多的。二、实现过程......
  • Nginx配置安全选项
    默认网站配置(未更改前)server{listen80;server_namelocalhost;location/{roothtml;indexindex.htmlindex.htm;......
  • SAP Java Connector 的配置指南
    SAPJava连接器(JCo)3.1需要Java运行时环境(JRE)版本8或11。有关受支持平台和Java运行时环境的最新详细列表,请参阅SAP说明2786882。最新版本的SAPJava......
  • linux配置vsftpd服务
    下载vsftpd服务yum-yinstallvsftpd开启vsftpd服务systemctlstartvsftpd由于防火墙默认没有开启ftp,我们需要手动把防火墙关闭,或者将ftp端口开放*不配置防火墙的话,客户的......
  • linux配置vsftpd服务
    下载vsftpd服务yum-yinstallvsftpd开启vsftpd服务systemctlstartvsftpd由于防火墙默认没有开启ftp,我们需要手动把防火墙关闭,或者将ftp端口开放*不配置防火墙的话,客户的......
  • 读取数组树下的某值,并返回其父级下的任何值 vue
    1//遍历树获取对应id的项中的值2queryTree(tree,value){3letstark=[];4stark=stark.concat(tree);5while(stark.length)......
  • LAMP介绍与基本配置
    一、LAMP概述1、lamp介绍​LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境LAMP是一个缩写词,具体......
  • SpringBoot实战笔记:02_使用注解与Java配置的Aop示例
    转载:https://blog.csdn.net/android_zyf/article/details/79579875<!--02_新的依赖--><!--导入spring的aop支持--><dependency><groupId>${spring-groupId}</groupId>......
  • SpringBoot实战笔记:01_Spring中的Java配置
    转载:https://blog.csdn.net/android_zyf/article/details/79579862Spring4.x与SpringBoot都推荐使用Java配置xml配置:将bean的信息配置在xml配置文件中注解配置:在对应的bea......