SpringBoot获取配置文件信息的2种方式

项目结构

在这里插入图片描述

配置文件

  1. pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.xiaoge</groupId>
        <artifactId>springboot-quick</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <!-- 所有的spring-boot工程都必须继承spring-boot-starter-parent -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.4.RELEASE</version>
        </parent>
    
        <dependencies>
            <!-- web功能的起步依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <!-- 工程热部署, 修改了代码后不用重启, springboot自动更新加载 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
    
            <!-- 映射@ConfigurationProperties的执行器 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>
    
            <!-- 自动生成getter 和 setter方法等 -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
        </dependencies>
    
    </project>
    
  2. application.yml

    # 这是普通数据的配置
    name: zhangsan
    
    # 对象的配置
    person:
      name: zhangsan
      age: 18
      address: beijing
    
    # 行内对象的配置方式, 行内方式一般不用
    # person: {name: zhangsan, age: 18, address: beijing}
    
    
    # 配置数据、集合(普通字符串)
    city:
      - beijing
      - tianjin
      - chongqing
      - shanghai
    
    # 行内集合(普通字符串), 行内方式一般不用
    # city: [beijing, tianjin, chongqing, shanghai]
    
    # 配置数据、集合(对象数据)
    student:
      - name: tom
        age: 18
        address: beijing
      - name: lucy
        age: 17
        address: tianjin
    
    # 行内方式
    # student: [{name: tom, age: 18, address: beijing}, {name: lucy, age: 17, address: tianjin}]
    
    
    # Map配置
    map:
      key1: value1
      key2: value2
    

表现层

  1. QuickController

    package com.xiaoge.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @program: springbootquick
     * @description:
     * @author: Mr.Xiao
     * @create: 2020-05-03 15:33
     **/
    @RestController
    public class QuickController {
    
        @GetMapping("/quick")
        public String quick(){
            return "hello spring boot";
        }
    
    }
    
    
  2. Quick2Controller(获取配置文件信息的第一种方式)

    package com.xiaoge.controller;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @program: springbootquick
     * @description:  获取配置文件信息的第一种方式
     * @author: Mr.Xiao
     * @create: 2020-05-03 17:17
     **/
    @RestController
    public class Quick2Controller {
    
        @Value("${name}") // 它会去spring容器中取出name的值赋值给name
        private String name;
    
        @Value("${person.address}")
        private String address;
    
        @GetMapping("/quick2")
        public String quick2() {
            // 获取配置文件的信息
    
            return "name: " + name + " address: " + address;
        }
    
    }
    
  3. Quick3Controller(获取配置文件信息的第二种方式)

    package com.xiaoge.controller;
    
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @program: springbootquick
     * @description: 获取配置文件的第二种方式
     * @author: Mr.Xiao
     * @create: 2020-05-03 17:25
     **/
    @RestController
    /*
    	会把配置文件的前缀是person的属性值找到对应属性名相同, 它会自动赋值
    */
    @ConfigurationProperties(prefix = "person") 
    @Data
    public class Quick3Controller {
        private String name;
        private Integer age;
        private String address;
    
        @GetMapping("/quick3")
        public String quick3() {
            // 获取配置文件的信息
    
            return "name: " + name + " age: " + age + " address: " + address;
        }
    }
    
    

引导类

  1. MySpringBootApplication

    package com.xiaoge;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * @program: springbootquick
     * @description: spring-boot 引导类
     * @author: Mr.Xiao
     * @create: 2020-05-03 15:31
     **/
    /*
        这个注解做了三个事:
        @SpringBootConfiguration:
            这个类就是个配置类, 它代表的是spring boot 的配置类
        @EnableAutoConfiguration
            开启自动配置, 就是说你到了什么依赖, 它会自动跟你配置
        @ComponentScan
            扫描包
     */
    @SpringBootApplication // 声明该类是一个SpringBoot引导类
    public class MySpringBootApplication {
    
        // main是java程序的入口
        public static void main(String[] args) {
            // run方法 表示运行SpringBoot引导类 run参数就是SpringBoot引导类的字节码对象
            SpringApplication.run(MySpringBootApplication.class);
        }
    
    }
    
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只因为你温柔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值