SpringBoot学习笔记-2:第二章 Spring Boot 配置(1)

简介: SpringBoot学习笔记-2:第二章 Spring Boot 配置

第二章 Spring Boot 配置

1、YAML 配置

SpringBoot 全局配置文件

application.properties
application.yml
• 1
• 2

YAML 以数据为中心,比 json、xml 更适合作为配置文件

server:
  port: 8081
<server>
    <port>8081</port>
</server>

2、YAML 语法

https://yaml.org/

YAML 语言教程:

http://www.ruanyifeng.com/blog/2016/07/yaml.html


1、基本语法


key:空格value


空格缩进来控制层级关系,左对齐的数据就是一个层级

属性和值大小写敏感

空格必须有

2、值的写法

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


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


(1)""双引号不会转义特殊字符。特殊字符会作为本身想表达的意思

eg:


name: "张三\n李四"


输出:

张三[换行]

李四



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

eg:


name: "张三\n李四"


输出:

张三\n李四


2.2、对象,map(属性和值,键值对)


(1)普通写法


person:

 name: Tom

 age: 23


(2)行内写法


person: { name: Tom, age: 23 }


2.3、数组,(List, Set)


(1)普通写法


pets:

 - cat

 - dog

 - pig


(2)行内写法


pets: [cat, dog, pig]

3、YAML 配置文件中值获取

配置文件

src/main/resources/application.yml

person:
  lastName: Tom
  age: 18
  boss: false
  birth: 2017/12/12
  maps: { k1: v1, k2: v2 }
  lists:
    - cat
    - dog
  dog:
    name: Jack
    age: 2

映射类

src/main/java/com/mouday/bean/Person.java

package com.mouday.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 将配置文件中的属性映射到这个组件中
 */
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean sex;
    private Date birth;
    private Map<String, Object> maps;
    private List<String> lists;
    private Dog dog;
    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 Boolean getSex() {
        return sex;
    }
    public void setSex(Boolean sex) {
        this.sex = sex;
    }
    public Date getBirth() {
        return birth;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    public Map<String, Object> getMaps() {
        return maps;
    }
    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }
    public List<String> getLists() {
        return lists;
    }
    public void setLists(List<String> lists) {
        this.lists = lists;
    }
    public Dog getDog() {
        return dog;
    }
    public void setDog(Dog dog) {
        this.dog = dog;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex=" + sex +
                ", birth=" + birth +
                ", maps=" + maps +
                ", lists=" + lists +
                ", dog=" + dog +
                '}';
    }
}

src/main/java/com/mouday/bean/Dog.java

package com.mouday.bean;
public class Dog {
    private String name;
    private Integer age;
    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;
    }
    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

单元测试依赖

pom.xml

<!--配置文件处理器 导入配置文件导入提示-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

单元测试

src/test/java/com/mouday/DemoApplicationTests.java

package com.mouday;
import com.mouday.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 DemoApplicationTests {
    @Autowired
    private Person person;
    @Test
    public void contextLoads() {
        System.out.println(person);
    }
}

打印结果


Person{name='Tom', age=18, sex=false, birth=Tue Dec 12 00:00:00 CST 2017,
    maps={k1=v1, k2=v2},
    lists=[cat, dog],
    dog=Dog{name='Jack', age=2}
}



读取 properties 文件配置


src/main/resources/application.properties


person.name=TOM

person.age=18

person.sex=false

person.birth=2017/12/12

person.maps.k1=v1

person.maps.k2=v2

person.lists=cat,dog

person.dog.name=Jack

person.dog.age=2


相关文章
|
18天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
33 4
|
15天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
27 0
|
8天前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
2天前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
17 3
|
13天前
|
druid Java Maven
|
15天前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
31 9
|
16天前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
101 1
|
16天前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
17 1
|
20天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
43 2
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。