一、SpringBoot简单概述
SpringBoot简介
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。
Spring Boot 基于Spring开发,Spring Boot 本身并不提供Spring 框架的核心特性以及扩展功能,只是用于快速.敏捷的开发新一代基于Spring 框架的应用程序。 Spring Boot以约定大于配置的核心思想,默认帮我们进行了很多设置,多数Spring Boot应用只需要很少的Spring配置。同时它集成了大量常用的第三方配置(例Redis,MongoDB,Jpa等等),Spring Boot应用中这些第三方库几乎可以零配置开箱即用。
Spring Boot的主要优点
- 为所有Spring开发者更快的入门
- 开箱即用的特定,提供各种默认配置来简化项目配置
- 内嵌式容器简化web项目
- 没有冗余代码生成XML配置的要求
Spring Boot 程序
开发环境
jdk1.8
maven
springboot:最新版
IDEA
官方:提供了一个快速生成的网站
1.可以在官网直接下载后,导入到idea开发
2.直接使用idea创建一个Springboot项目(一般建议在idea里创建)
自动配置:
1.spring-boot-deperdencies:核心依赖在父工程中;
2.在引入springboot依赖的时候,可以不用指定版本号,因为有这些版本仓库;
启动器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
启动器: 就是springboot的启动场景;
例如 ”spring-boot-starter-web“ 会帮我们自动导入web环境下的所有依赖;
springboot会将所有的功能场景,都变成一个个的启动器;
也就是说我们需要什么功能,就只需要找到对应的启动器就行;
主程序:
/**
* @SpringBootApplication : 标注这个类是一个springboot的应用
*/
@SpringBootApplication
public class SpringbootHelloworldProjectApplication {
public static void main(String[] args) {
// 将springboot应用启动
SpringApplication.run(SpringbootHelloworldProjectApplication.class, args);
}
}
springboot所有的自动配置在启动的时候被扫描并加载:’spring.factories‘所有的自动配置都在这里面,需要判 断条件是否成立才会生效,只要导入了start,就有对应的启动器,有了启动器 自动装配就会生效。
1.springboot在启动的时候,从类路径下/META-INF/spring.factories获取指定的值。
2.讲这些自动配置的类导入容器,自动配置就会生效
3.以前我们需要自动配置的东西,现在由springboot帮我们做
4.整合javaEE,解决方案和自动配置的东西都在Spring-boot-autoconfigure-2.3.4.jar包下
SpringApplication
1.查找并加载所有可用初始化器,设置到initializers属性中
2.找出所有的应用程序监听器,设置到listeners属性中
3.设置main方法的定义类,找到运行的主类
配置文件
Springboot使用一个全局的配置文件,配置文件名称是固定的
application.properties
语法结构 : key=value
application.yaml
语法结构 : key 空格 value
配置文件的作用:修改springboot自动配置的默认值,因为springboot在底层给我们自动配置好了.
yaml配置文件可以直接给实体类赋值
点击上面的连接就会跳转一个页面,将下面的依赖添加到pom.xml配合文件中,(如果跳转不成功,那就看url栏你的版本,将版本降低一点。比如2.3.4.RELEASE进不去,那就降到2.1.9.RELEASE)
yaml配置文件风格是严重必须区分格式,注意空格
yaml配置文件中的属性必须跟实体类里的属性名一一对应
这里就是跟实体类赋值的配置文件使用的yaml配置。(当然也可以使用properties配置,我是认为yaml配置可阅读性高,简单点,在properties里写中文会出现乱码,这就需要们取idea设置编码格式为utf-8)
在这里说一下,另外一种给实体类赋值的方法就是在需要赋值的属性上面注解@Value。如果实体类多的话那岂不是很麻烦还需要一个一个的去注解吗?这里就不多细述。
加载指定的配置文件
可以指定配置文件
自动装配的原理:
1.SpringBoot启动会加载大量的自动配置类;
2.看一下我们我需要的功能有没有在SpringBoot默认写好的自动配置类当中;
3.再看这个自动配置类中到底配置了哪些组件(只要我们需要的用的组件在其中,就不需要我们手动配置了);
4.给容器自动配置类添加组件的时候,会从properties类中获取某些属性,我们只需要在配置文件中指定这些属性 的值即可;
XXXXXAutoConfigurartion: 自动配置类;给容器添加组件
XXXXXProperties: 封装配置文件中相关属性