项目结构
配置文件
-
pom.xml
<?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> <groupId>com.xiaoge</groupId> <artifactId>springboot-quick</artifactId> <version>1.0-SNAPSHOT</version> <!-- 所有的spring-boot工程都必须继承spring-boot-starter-parent --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> </parent> <dependencies> <!-- web功能的起步依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 工程热部署, 修改了代码后不用重启, springboot自动更新加载 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <!-- 映射@ConfigurationProperties的执行器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <!-- 自动生成getter 和 setter方法等 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> </project>
-
application.yml
# 这是普通数据的配置 name: zhangsan # 对象的配置 person: name: zhangsan age: 18 address: beijing # 行内对象的配置方式, 行内方式一般不用 # person: {name: zhangsan, age: 18, address: beijing} # 配置数据、集合(普通字符串) city: - beijing - tianjin - chongqing - shanghai # 行内集合(普通字符串), 行内方式一般不用 # city: [beijing, tianjin, chongqing, shanghai] # 配置数据、集合(对象数据) student: - name: tom age: 18 address: beijing - name: lucy age: 17 address: tianjin # 行内方式 # student: [{name: tom, age: 18, address: beijing}, {name: lucy, age: 17, address: tianjin}] # Map配置 map: key1: value1 key2: value2
表现层
-
QuickController
package com.xiaoge.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * @program: springbootquick * @description: * @author: Mr.Xiao * @create: 2020-05-03 15:33 **/ @RestController public class QuickController { @GetMapping("/quick") public String quick(){ return "hello spring boot"; } }
-
Quick2Controller(获取配置文件信息的第一种方式)
package com.xiaoge.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * @program: springbootquick * @description: 获取配置文件信息的第一种方式 * @author: Mr.Xiao * @create: 2020-05-03 17:17 **/ @RestController public class Quick2Controller { @Value("${name}") // 它会去spring容器中取出name的值赋值给name private String name; @Value("${person.address}") private String address; @GetMapping("/quick2") public String quick2() { // 获取配置文件的信息 return "name: " + name + " address: " + address; } }
-
Quick3Controller(获取配置文件信息的第二种方式)
package com.xiaoge.controller; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * @program: springbootquick * @description: 获取配置文件的第二种方式 * @author: Mr.Xiao * @create: 2020-05-03 17:25 **/ @RestController /* 会把配置文件的前缀是person的属性值找到对应属性名相同, 它会自动赋值 */ @ConfigurationProperties(prefix = "person") @Data public class Quick3Controller { private String name; private Integer age; private String address; @GetMapping("/quick3") public String quick3() { // 获取配置文件的信息 return "name: " + name + " age: " + age + " address: " + address; } }
引导类
-
MySpringBootApplication
package com.xiaoge; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @program: springbootquick * @description: spring-boot 引导类 * @author: Mr.Xiao * @create: 2020-05-03 15:31 **/ /* 这个注解做了三个事: @SpringBootConfiguration: 这个类就是个配置类, 它代表的是spring boot 的配置类 @EnableAutoConfiguration 开启自动配置, 就是说你到了什么依赖, 它会自动跟你配置 @ComponentScan 扫描包 */ @SpringBootApplication // 声明该类是一个SpringBoot引导类 public class MySpringBootApplication { // main是java程序的入口 public static void main(String[] args) { // run方法 表示运行SpringBoot引导类 run参数就是SpringBoot引导类的字节码对象 SpringApplication.run(MySpringBootApplication.class); } }