zoukankan      html  css  js  c++  java
  • Spring Boot Sample 003之spring-boot-configuration-properties

    一、环境

    • Idea 2020.1
    • JDK 1.8
    • maven

    二、目的

    通过properties文件配置spring boot 属性文件。

    三、步骤

    3.1、点击File -> New Project -> Spring Initializer,点击next

    3.2、在对应地方修改自己的项目信息

    3.3、选择Web依赖,选中Spring Web。可以选择Spring Boot版本,本次默认为2.2.6,点击Next

    3.4、编辑工程名和项目路径,确定后点击Finish完成

    3.5、项目结构

    四、添加测试方法

     

    4.1、新建UserController实体类

    package org.ouyushan.springboot.configuration.properties.controller;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.HashMap;
    
    /**
     * @Description:
     * @Author: ouyushan
     * @Email: ouyushan@hotmail.com
     * @Date: 2020/4/27 13:34
     */
    
    @RestController
    @RequestMapping("/api/user")
    public class UserController {
    
        @Value(value = "${ouyushan.secret}")
        private String secret;
    
        @Value(value = "${ouyushan.number}")
        private int number;
    
        @Value(value = "${ouyushan.desc}")
        private String desc;
    
    
        @GetMapping("/")
        public String hello() {
            return "Hello World Based On Spring-Boot";
        }
    
        // @RequestParam 简单类型的绑定
        @GetMapping("/getUser")
        public HashMap<String, Object> getUser(@RequestParam String username) {
            HashMap<String, Object> map = new HashMap<>();
            map.put("title", "hello world");
            map.put("username", username);
            map.put("secret",secret);
            map.put("number",number);
            map.put("desc",desc);
            return map;
        }
    }

    4.2、配置默认application.properties

    在resources/application.properties中配置以下信息:
    ouyushan.secret=${random.value}
    ouyushan.number=${random.int}
    ouyushan.name=ouyushan
    ouyushan.desc=${ouyushan.name} is a domain name
    server.port=9090
    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
    spring.jackson.time-zone=Asia/Chongqing
    启动项目,访问
    返回:
    {
        "number":-1860712823,
        "secret":"e1066512836d41276cbd3baf86189ac8",
        "title":"hello world",
        "username":"spring",
        "desc":"ouyushan is a domain name"
    }
    
    

    4.3、配置resources/config/application.properties

    ouyushan.secret=${random.value}
    ouyushan.number=${random.int}
    ouyushan.name=ouyushan-config
    ouyushan.desc=${ouyushan.name} is a domain name
    server.port=7070
    
    
    启动项目,访问
    返回:
    {
        "number":-1540619073,
        "secret":"352c725a9695f463f4edbcbd6dee1944",
        "title":"hello world",
        "username":"spring",
        "desc":"ouyushan-config is a domain name"
    }
    
    
    通过对比请求地址和返回结果,发现resources/config/application.properties中的配置内容已覆盖resources/application.properties

    五、知识点

    # 示例  spring-boot-configuration-properties  外部化配置
    
    
    properties文件优先级
    
    1. 当前目录下的一个/config子目录
    2. 当前目录
    3. 一个classpath下的/config包
    4. classpath根路径(root)
    
    可通过@Value取值
    
        @Value(value = "${ouyushan.secret}")
        private String secret;
    
    
    **@ConfigurationProperties(prefix = "sample")**
    
    读取外部配置文件中sample 开始的属性,自动映射到类中的字段,并覆盖代码中的值。
  • 相关阅读:
    String与StringBuffer常用API
    Java常用类库与工具课后习题3-5
    Java异常课后习题编程题
    Java异常课后习题简答题
    Visio的快速使用和功能理念
    Google免费新书-《构建安全&可靠的系统》
    名字的由来
    日志分析-利用grep,awk等文本处理工具完成(2019-4-9)
    关于docker--详解安装,常规操作,导入导出等(2017-3-29)
    Thinkphp5-0-X远程代码执行漏洞分析(2019-1-11)
  • 原文地址:https://www.cnblogs.com/ouyushan/p/13023778.html
Copyright © 2011-2022 走看看