JavaWeb学习--SpringBoot配置文件(1)

        SpringBoot中使用两种配置文件,分别是application.yml和application.properties,配置文件的作用是用于修改SpringBoot自动配置的默认值.传统的项目所用的配置文件通常为XML或JSON,而SpringBoot使用的YAML以数据为中心,比XML,JSON等更适合做配置文件:

        XML配置端口号:

<server>
    <prot>8088</port>
</server>

        YAML配置端口号:

server:
    port: 8088

        使用YAML配置的话,其基本语法形如MAP,为:key:(空格)value,其中的空格必须要,如

key: value

而其又以缩进分层,左对齐的均为同一层级的内容,如

person1:
    name: "1111"
    age: 22
    sex: 男
person2:
    name: '222'
    age: 33
    sex: '女'

其中person1和person2是同一层级,是两个不同的类,而内部的name等是其属性,而在YAML内,字符串类型默认为单引号,可不用加单双引号,而单双引号存在不同,单引号会转义特殊字符,特殊字符最终只是一个普通的字符串数据

person:
    name:'111 \n 222'

如上的代码输出结果为

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

person:
    name: "111 \n 222"

其输出结果为:

可以看到起发生了换行。

而在YAML中,创建一个类对象的格式有两种,分别如下:

LeiMing1:
    shuxing1: 1
    shuxing2: 2
    shuxing3: 3
LeiMing2:{shuxing1: 1,shuxing2: 2,shuxing3: 3}

而创建数组(ListSet)也有2种写法:

List1:
    -111
    -222
    -333
List2:[111,222,333]

而使用YAML配置类,首先创建一个实体类:


@Component
@ConfigurationProperties(prefix = "person")//告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定,并指定绑定的配置名
public class Person {
     String name;
     Integer age;
     List<String> friends;
     String address;
     String school;
    @Override
    public String toString() {
        return "person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", friends=" + friends +
                ", address='" + address + '\'' +
                ", school='" + school + '\'' +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public List<String> getFriends() {
        return friends;
    }

    public void setFriends(List<String> friends) {
        this.friends = friends;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }
}

创建一个application.yml,写上对应的默认值:

server:
  port: 8082
person:
  address: '优快云'
  age: 19
  friends:
    -f1
    -f2
    -f3
  name: "name1"
  school: "TWTDX"

在Test中查看是否成功配置:

@RunWith(SpringRunner.class)
@SpringBootTest
class Demo12ApplicationTests {
    @Autowired
    Person person;
    @Test
    void contextLoads() {
        System.out.print(person);
    }
}

可以看到运行成功

而另一种application.properties作用与YAML类似,但是优先级更高。其与YAML一样字符串默认可不写引号,但是其的单双引号不会转义字符串里面的特殊字符,其写法为:对象名.属性名=属性;

在上面YAML基础上创建一个application.properties

person.address=aaa
person.name="name \n 1"
person.school='twt \n dx'

运行结果如下:可以看到name,address,school属性均被修改,且无论单双引号否,/n都起到了换行的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值