springBoot
原理解析:
pom.xml
(1)父工程
parent标签对:点进去之后还有一个parent标签对,里面加载了大量的jar包!存放着springboot的核心依赖,也不用写版本,已经在parent中自动配置管理。
(2)启动器
spring—boot—starter
pom文件配置了很多启动器,相当于springboot的启动场景。他会将所有的模块都变成启动场景。如果我们需要什么功能,就找到相应的启动器就可以了!
主程序
(1)@SpringBootApplication
标注这个类为springboot类的应用,去掉它则无法将springboot启动。
它里面的注解
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited //前四个基础注解
@SpringBootConfiguration //springboot的配置
//它里面的配置
@Configuration //代表它是一个spring配置类
@Component //它的里面的配置说明它是一个spring组件
@EnableAutoConfiguration//自动导入配置
@AutoConfigurationPackage //自动配置包
@Import({Registrar.class})//导入了包注册
@Import({AutoConfigurationImportSelector.class})//自动配置导入
@ComponentScan //扫描包注解
自动装配类
结论:springboot所有的配置都是在启动的时候扫描并且加载,spring.factories所有的自动配置类都在这里面,但是不一定生效,要判断条件是否成立,只要导入了对应的starter,就有了对应的启动器了,自动装配就会生效,然后就配置成功!
(2)SpringApplication.run()
通过反射加载类的对象,将springboot启动
配置文件解析
springboot使用一个全局的配置文件,配置文件名称是固定的。
(1)application.properties
语法结构: key=value
(2)application.yml
语法结构:key=空格 value
松散绑定:
当pojo实体类通过yaml赋值的时候,实体类属性名和yaml中可以名字之间加个“-”也可以进行绑定。
JSR303数据校验
使用注解@Validataed打开进行数据校验,在需要校验的属性上面使用相关注解