Spring Boot入门

首先介绍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.测试

Spring Boot入门

到了这里,我们一个SpringBoot的基本入门就结束了,下来就继续介绍Spring Boot的其他知识点。

二、Spring Boot热部署

Spring Boot热部署只需要在pom文件中加入坐标即可
				<dependency>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-devtools</artifactId>
				</dependency>

在这里如果使用IDEA会发现并不能热部署,原因是IDEA本身不支持热部署,需要修改IDEA的配置即可

Spring Boot入门
然后使用快捷键Ctrl+Alt+Shift+/,选择registry,找到此选项并勾选即可实现热部署。

Spring Boot入门

三、修改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
对象格式 Spring Boot入门 server.port=8082
配置普通字符串集合 Spring Boot入门
配置对象集合 Spring Boot入门
map配置 Spring Boot入门
获取配置文件属性

假如配置文件中有如下配置:
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方法