SpringBoot
学习方向
什么是Spring
spring是为了解决企业级应用开发的复杂性而创建的,简化开发。
Spring是如何简化Java开发的
为了降低Java开发的复杂性,Spring采用了一下4中关键策略
- 基于Pojo的轻量级和最小侵入式编程;
- 通过IOC(控制反转),DI(依赖注入)和面向接口实现松耦合;
- 基于AOP(切面)和惯例进行声明式编程;
- 通过切面和模板减少样式代码
Spring Boot的主要有点:
- 为所有spring开发者更快的入门
- 开箱即用,提供各种默认配置来简化项目配置
- 内嵌式容器简化web项目
- 没有冗余代码生成和XML配置的要求
Springboot 自动装配
pom.xml
- spring-boot-dependencies:核心依赖在父工程中
- 我们在写或者引入一些springBoot依赖的时候,不需要指定版本,就是因为有这些版本仓库
启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
- 启动器:说白了就是springBoot的启动场景;
- 比如spring-boot-starter-web,他就会帮我们自动导入web环境所有的依赖
- springBoot会将所有的功能场景,都变成一个个的启动器
- 我们要使用什么功能,就只需要找到对应的启动器就可以了
starter
JSR-303数据校验
JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。
Bean Validation 中内置的 constraint
查看原文张出处
Hibernate Validator 附加的 constraint
自动装配原理
1. SpringBoot启动会加载大量的自动配置类
2. 我们看我们需要的功能没有SpringBoot默认写好的自动配置类中
3. 我们再来看这个自动配置类中到底配置了那些组件(只要我们要用的组件存在其中,我们就不需要在手动配置了)
4. 给勇气自动配置类添加组件的时候,会从properties类中获取某些属性。我们只需要在配置文件中指定这些属性的值即可
5. xxxAutoConfiguration:自动配置类:给容器中添加组件
6. xxxProperties:封装配置文件中相关属性