2、Spring boot 配置

Spring boot 配置

1、YAML

1.1 YAML语法

  • k: v 表示键值对,键冒号后面必须空格
  • 使用空格缩进代表层级关系,缩进时使用空格不能用Tab键
  • 使用驼峰命名法
  • 大小写敏感
  • #表示注释

1.2 使用实例

在这里插入图片描述
首先建一个Person类和Dog类

package com.zhou.springboot.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
public class Dog {
    private String name;
    private Integer age;
}

package com.zhou.springboot.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Data // lombok提供的属性的get、set方法
@ToString //lombok提供的tostring 可以把整个对象的属性和值拼接输出
@AllArgsConstructor //全参构造函数
@NoArgsConstructor //无参构造函数
@ConfigurationProperties(prefix = "person") //对应yaml中的属性 person
@Component //注册到bean
public class Person {
    private String userName;
    private boolean isOK;
    private Date birth;
    private Integer age;
    private Dog dog;
    private String[] interests;
    private List<String> animal;
    private Map<String,Object> score;
    private Set<Double> set;

    //通过@Value也可以给属性注入值,下面两个是yaml中没有的,通过@Value(“想要给的值”)赋值
    //@Value 是 org.springframework.beans.factory.annotation.Value,
    @Value("zhangsan")
    private String name;
    @Value("11")
    private Integer age1;
}

建一个application.yaml

person:
  #String
  userName: zhangsan
  #boolean
  isOk: true
  #Date
  birth: 2022/01/20
  #Integer
  age: 21

  #对象可以用下面两种写法
  #dog: {name: 汪汪, age: 1}
  dog:
    name: 汪汪
    age: 1

  #String[] 可以用下面两种写法
  #interests: [football, basketball]
  interests:
    - football
    - basketball

  #List<String> 可以用下面两种写法
  #animal: [cat, dog]
  animal:
    - cat
    - dog

  #Map<String,Object> 可以用下面两种写法
  #score: {chinese: 100, math: 100}
  score:
    chinese: 100
    math: 100

  #Set<Double> 可以用下面两种写法
  #set: [1.1, 1.0]
  set:
    - 1.1
    - 1.0



在控制器里面建一个person方法给前台调用

package com.zhou.springboot.controller;

import com.zhou.springboot.entity.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
public class HelloController {

    @Autowired
    Person person;

    @GetMapping("/hello")
    public String hello(){
        return "hello spring boot";
    }

    @GetMapping("/person")
    public Person person(){
        return person;
    }
}

前端调用的返回结果
在这里插入图片描述

2、切换配置文件

在开发中配置文件中的内容会发生变化,比如:开发中用到的端口是8080、测试用的8081、生产环境中用的8082,还有数据库、redis等地址也会发生改变,如果每次改同一个配置文件,配置项还这么多可能还会改错,如何以最少的修改来满足我们的要求呢?下面就来说一说

2.1 通过配置文件实现

先添加三个配置文件:application.yaml,application-dev.yaml,application-test.yaml,为了直观的看到效果,直接改tomcat的端口
注意:定义名字的时候一定是这种格式:application-进行切换的类型.yaml
在这里插入图片描述

application-dev.yaml

server:
  port: 8081

application-test.yaml

server:
  port: 8082

application.yaml,下面的dev代表的是使用application-dev.yaml

spring:
  profiles:
    active: dev

下面我们看到日志中输出的端口是8081,和我们预期结果一样
在这里插入图片描述
application.yaml,下面的test代表的是使用application-test.yaml

spring:
  profiles:
    active: test

下面我们看到日志中输出的端口是8082,和我们预期结果一样
在这里插入图片描述
通过上面的例子可以看出,不管以后有几种环境的配置,都只需要在application.yaml中改一个地方就行了

3、自定义banner

Spring boot每个版本不同输出的样式也不太一致,下面是现在用的版本输出的样式
在这里插入图片描述
自定义样式其实挺简单的,在线生成一个或自己编辑一个
下面推荐两个网站,各位可以根据自己的喜好选择

http://patorjk.com/software/taag/#p=display&f=Isometric1&t=Test
https://www.bootschool.net/ascii

下面就是我在线生成的一个,文件名是banner.txt,路径在resources下,然后启动就会在日志中打出来
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值