首先介绍Spring Boot的核心功能:1.起步依赖(将所有依赖进行封装,方便导入依赖并且没有jar包冲突风险) 2.自动配置
一、快速入门
1.创建工程
首先来创建Spring Boot一个入门工程,打开IDEA创建一个maven工程(无论是web工程还
是其他工程都只需要创建一个maven的普通工程,不需要专门去创建maven的web工程)。
2.添加起步依赖
SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
如果是一个web项目,则还需要添加Spring Boot的web依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3.创建引导类
@SpringBootApplication//标注这个类是一个引导类
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class);
}
}
4.编写Controller
@Controller
public class StartController {
@RequestMapping("/hello")
@ResponseBody
public String haha(){
return "hello SpringBoot";
}
}
5.测试
到了这里,我们一个SpringBoot的基本入门就结束了,下来就继续介绍Spring Boot的其他知识点。
二、Spring Boot热部署
Spring Boot热部署只需要在pom文件中加入坐标即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
在这里如果使用IDEA会发现并不能热部署,原因是IDEA本身不支持热部署,需要修改IDEA的配置即可
然后使用快捷键Ctrl+Alt+Shift+/,选择registry,找到此选项并勾选即可实现热部署。
三、修改Spring Boot默认配置
SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件。
这两种配置文件各自格式不同,properties就是我们常用的键值对格式。而yml格式累死于json(yml配置文件可跨语言使用,很多语言都支持)。
如果项目中设置了多个配置文件,那么Spring boot会读取哪份呢。
在这里介绍Spring boot读取顺序:首先为yml文件,下来为yaml文件,最后为properties,后者将会覆盖前者。
配置文件格式
配置类型 | yml文件格式 | prilerties格式 |
---|---|---|
普通类型 | name: haha(注意冒号后面有空格) | name=haha |
对象格式 | server.port=8082 | |
配置普通字符串集合 | ||
配置对象集合 | ||
map配置 |
获取配置文件属性
假如配置文件中有如下配置:
person:
name: xiaowang
age:22
@Controller
public class QuickStartController {
@Value("${person.name}")
private String name;
@Value("${person.age}")
private Integer age;
可以使用@Value获取属性值,但是很显然这种做法比较麻烦,假如此对象中有100个属性呢?
我们可以只用Spring Boot中的注解实现,在类上标注注解@ConfigurationProperties(prefix=“配置文件中的key的前缀”) ,
@Controller
@ConfigurationProperties(prefix = "person")
public class QuickStartController {
private String name;
private Integer age;
此做法必须提供set,get方法