springboot 配置全局响应数据_Spring boot 配置文件,配置注解详解 (properties 和yml )...

从其他框架来看 我们都有自己的配置文件, hibernate有hbm,mybatis 有properties, 同样, Spring boot 也有全局配置文件。

Springboot使用一个全局的配置文件,而且配置文件的名字是固定的。 有两种

application.properties

application.yml

springboot 配置文件的作用是用来 修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好; 像我们Tomcat 启动 默认配置端口是8080 . 如果要修改, 我们就在这两个文件的一种中来修改,

YML (也叫YAML :  YAM Ain't  Markup Language)

YAML Ain't Markup Language 这是一个递归写法 ;

YAML  A Markup Language:是一个标记语言

YAML   isn't Markup Language:不是一个标记语言;

标记语言:

我们以前用的配置文件,大多都使用 xxxx.xml  文件 ;

YAML  : 是一种以数据为中心的配置文件, 比json,xml  等更适合做配置文件

举个栗子:

以 修改端口为例 :

yml :

server:

port:8081xml :

8081

xml 配置 将太多的浪费在了标签上面。

yml 基本语法:

k:(空格)v:表示一对键值对(空格必须有);

以  空格  的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

server:

port:8081path:/hello

属性和值也是大小写敏感;

值的写法:

字面量:普通的值(数字,字符串,布尔)

k: v:字面直接来写;

字符串默认不用加上单引号或者双引号;

"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

name: "zhangsan \n lisi":输出;zhangsan 换行 lisi

'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

对象、Map(属性和值)(键值对):

k: v:在下一行来写对象的属性和值的关系;注意缩进

​        对象还是k: v的方式

friends:

lastName: zhangsan

age: 20

行内写法:

friends: {lastName: zhangsan,age: 18}

数组(List、Set):

用 -  值表示数组中的一个元素

pets:

- cat

- dog

- pig

行内写法

pets: [cat,dog,pig]

配置文件注入

javaBean :

可以导入配置文件处理器依赖,以后编写配置就会有代码提示;

代码展示配置文件注入属性值 :

1 packagecom.example.webservice.bean;2

3 importorg.springframework.boot.context.properties.ConfigurationProperties;4 importorg.springframework.stereotype.Component;5

6 importjava.util.Date;7 importjava.util.List;8 importjava.util.Map;9

10 /**

11 *12 * ConfigurationProperties(prefix ="person") 将本类中的所有属性和配置文件中的相关配置进行绑定13 * prefix ="person 表示对哪个文件进行绑定14 * Component 表示这是一个容器, 只有在容器中 ConfigurationProperties 才能使用15 */

16 @Component17 @ConfigurationProperties(prefix = "person")18 public classPerson {19

20 privateString name;21 privateInteger age;22 private booleanman;23 privateDate birth;24 private Mapmap;25 private Listlist ;26 privateSon son ;27

28 .....省略get/set 以及toString 方法29

30 }31

32

33 packagecom.example.webservice.bean;34

35 public classSon {36

37 privateString name;38 privateInteger age ;39

40 publicString getName() {41 returnname;42 }43

44 publicInteger getAge() {45 returnage;46 }47

48 public voidsetName(String name) {49 this.name =name;50 }51

52 public voidsetAge(Integer age) {53 this.age =age;54 }55

56 @Override57 publicString toString() {58 return "Son{" + "name='" + name + '\'' + ", age=" + age + '}';59 }60 }61

62

63 properties文件绑定的写法64 #注释方法 Ctrl + /

65 person.name=爸爸66 person.age=45

67 person.man=true

68 person.birth=2019/8/8

69 person.map.k1=h170 person.map.k2=h271 person.list=a,1,son72 person.son.name=儿子73 person.son,age=20

74

75

76 yml 文件绑定的写法:77

78 person:79 name: 爸爸80 age: 25

81 birth: 2018/2/8

82 man: true

83 list:84 -a85 - 2

86 -son87 map: {key1:value1,key2:value2}88 son:89 name: 儿子90 age: 5

测试类 :

在我们的test 文件夹下 :

package com.example.webservice;

import com.example.webservice.bean.Person;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)

@SpringBootTest

public class WebserviceApplicationTests {

@Autowired

Person person;

@Test

public void contextLoads() { // 直接运行这个方法 ,而不是运行整个程序

System.out.println(person);

System.out.println("********************************************************");

}

控制台打印结果 (使用的 yml 配置文件)

properties配置文件在idea中默认utf-8可能会乱码 。因为spring properties  默认是ASCII 码 ,所以需要将properties  默认编码改为UTP-8 ,再√上旁边的 将其运行时转换为ASCII码;再输入中文就好了

都改成utf-8 ,再输入中文就好了。</

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值