Spring Boot配置文件的使用

Spring Boot配置文件的使用

Spring Boot配置文件有两种书写格式,一种是.properties结尾,一种是.yaml结尾的。

.properties配置文件

新建项目时候该文件已经帮我们创建,但是为一个空文件
这里写图片描述

我们可以打开文件配置修改如下

生成一个随机字符

#生成一个随机字符
mx.secret=${random.secret}

在controller里获取该值

@RestController
@RequestMapping("/index")
public class IndexController {

    @Value(value="${mx.secret}")
    private String secret;

    @RequestMapping
    public String index() {
        return "Hello World";
    }

    @RequestMapping("get")
    public Map<String, String> get(@RequestParam String name) {     
        Map map = new HashMap<>();
        map.put("name", name);
        map.put("address", "北京丰台");
        map.put("secret", secret);
        return map;
    }
}

打开浏览器访问测试地址
这里写图片描述

写一个固定引用

mx.name=www.example.mx
mx.description=${mx.name} is good

在controller中获取该属性

@RestController
@RequestMapping("/index")
public class IndexController {

    @Value(value="${mx.secret}")
    private String secret;

    @Value(value="${mx.description}")
    private String description;

    @RequestMapping
    public String index() {
        return "Hello World";
    }

    @RequestMapping("get")
    public Map<String, String> get(@RequestParam String name) {

        Map map = new HashMap<>();
        map.put("name", name);
        map.put("address", "北京丰台");
        map.put("secret", secret);
        map.put("description", description);
        return map;
    }
}

打开浏览器访问测试地址
这里写图片描述

修改端口、时间格式、时区

由于Spring Boot默认时区设置为美国洛杉矶,会导致我们输出时间不对

#端口设置
server.port=8090
#日期格式化
spring.jackson.date-format=yyyy-MM-dd HH-mm-ss
#时区
spring.jackson.time-zone=GMT+8

在controller中获取属性

@RestController
@RequestMapping("/index")
public class IndexController {

    @Value(value="${mx.secret}")
    private String secret;

    @Value(value="${mx.description}")
    private String description;

    @RequestMapping
    public String index() {
        return "Hello World";
    }

    @RequestMapping("get")
    public Map<String, String> get(@RequestParam String name) {

        Map map = new HashMap<>();
        map.put("name", name);
        map.put("address", "北京丰台");
        map.put("secret", secret);
        map.put("description", description);
        return map;
    }

    @RequestMapping("find/{id}/{name}")
    public User find(@PathVariable String id, @PathVariable String name) {  
        User user = new User();
        user.setAge(99);
        user.setId(id);
        user.setName(name);
        user.setDate(new Date());
        return user;
    }
}

打开浏览器访问测试地址
这里写图片描述
可以看到端口已经被修改成功.

Spring Boot .properties多配置文件使用

新增两个配置文件,分别为application-dev.properties和application-test.properties
这里写图片描述
分别配置如下

#生成一个随机字符
mx.secret=${random.secret}

mx.name=www.example.mx
mx.description=${mx.name} is good

#端口设置
server.port=8095

spring.jackson.date-format=yyyy-MM-dd HH-mm-ss
spring.jackson.time-zone=GMT+8
#生成一个随机字符
mx.secret=${random.secret}

mx.name=www.example.mx
mx.description=${mx.name} is good

#端口设置
server.port=8090

spring.jackson.date-format=yyyy-MM-dd HH-mm-ss
spring.jackson.time-zone=GMT+8

然后修改application.properties配置增加如下代码

spring.profiles.active=test

重启项目,发现已经使用application-test.properties中的配置.同理修改为dev则使用application-dev.properties中的配置

我们也可以在命令行中运行参数
1.首先将项目打包
这里写图片描述
2.右键打开命令行,输入命令如下

 java -jar .\spring-boot-0.0.1-SNAPSHOT.jar

3.此时运行的是application-test.properties的配置
这里写图片描述
4.我们也可以运行如下命令

java -jar .\spring-boot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

5.此时运行的是application-dev.properties的配置
这里写图片描述

.yaml配置文件

可以自己新建一个.yaml文件如下
这里写图片描述

配置格式如下

#生成一个随机字符
mx: 
  secret: ${random.secret}
  name: www.example.mx
  description: ${mx.name} is good

#端口设置
server: 
  port: 8081

spring: 
  jackson: 
    date-format: yyyy-MM-dd HH-mm-ss
    time-zone: GMT+8

打开浏览器访问测试地址
这里写图片描述
效果其实是一样的,.yaml使得写法更简洁

Spring Boot .yaml多配置文件使用

修改配置文件如下,.yaml可以在一个文件下使用多种配置,用---隔开:

#生成一个随机字符
mx: 
  secret: ${random.secret}
  name: www.example.mx
  description: ${mx.name} is good

#端口设置
server: 
  port: 8081

spring: 
  profiles:
    active: test
  jackson: 
    date-format: yyyy-MM-dd HH-mm-ss
    time-zone: GMT+8

---
spring:
  profiles: test

server:
  port: 8082

---
spring:
  profiles: dev

server:
  port: 8083

查看命令行,可以看到已经使用test的配置
这里写图片描述

猜你喜欢

转载自blog.csdn.net/mxjesse/article/details/80212012
今日推荐