一、在pom文件中加入依赖
目录结构
在实体类中会出现错误,然后点击这个网址会有需要的依赖
网址:
https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-annotation-processor
引入的依赖为:
<dependency><groupId> org.springframework.boot </groupId><artifactId> spring-boot-configuration-processor </artifactId><optional> true </optional></dependency>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!--继承父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.william</groupId><artifactId>day01_springboot_initializr</artifactId><version>0.0.1-SNAPSHOT</version><name>day01_springboot_initializr</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId> org.springframework.boot </groupId><artifactId> spring-boot-configuration-processor </artifactId><optional> true </optional></dependency><!--spring boot开发工具包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
二、application.yml
#配置对象
person:name: zhangsanage: 19date: 2019/09/09# 数组配置city:- beijing- tianjin- shanghai- chongqing# 配置集合
student:
- name: zhangsanage: 18score: 100
- name: lisiage: 28score: 88
- name: wangwuage: 38score: 90
#注意事项:在key与value直接需要加入空格,对大小写敏感。
server:port: 8081servlet:context-path: /demo
三、application.properties
server.port=8081
server.servlet.context-path=/demo
四、Person
需要提供get/set方法 和toString方法
还需要注解@Component
需要注解@ConfigurationProperties(prefix = “person”)
使用注解@ConfigurationProperties映射
通过注解@ConfigurationProperties(prefix=’'配置文件中的key的前缀")可以将配置文件中的配置自动与实体进行映 射。
使用@ConfigurationProperties方式必须提供Setter方法,使用@Value注解不需要Setter方法
package com.william.day01_springboot_initializr.domain;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;import java.util.Arrays;
import java.util.Date;/*** @author :lijunxuan* @date :Created in 2019/6/27 19:29* @description :* @version: 1.0*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person {private String name;private String age;private Date date;private String [] city;@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age='" + age + '\'' +", date=" + date +", city=" + Arrays.toString(city) +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public String[] getCity() {return city;}public void setCity(String[] city) {this.city = city;}
}
五、HelloController
1、使用注解@Value映射
@value注解将配置文件的值映射到Spring管理的Bean属性值
package com.william.day01_springboot_initializr.controller;import com.william.day01_springboot_initializr.domain.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author :lijunxuan* @date :Created in 2019/6/27 17:20* @description :* @version: 1.0*/
@RestController
public class HelloController {@AutowiredPerson person;@Value("${person.name}")private String name;@Value("${person.age}")private String age;@RequestMapping("/hello")public String hello(){return String.format("hello world 你好!世界!1234222 name = %s!! age = %s!! person = %s !!",name,age,person);// return String.format("hello world 你好!世界!1234222 person = %s !!",person);}
}