什么是springboot?
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
优点:容易上手,简化了spring的难度、开箱即用、没有代码生成无需配置xml文件,避免了大量maven的导入和依赖冲突
自动装配:通过@SpringBootApplication注解中的@EnableAutoConfiguration:spring boot自动配置时需要的注解,会让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置。同时,它也是一个组合注解。
在@EnableAutoConfiguration中用了@Import注解导入EnableAutoConfigurationImportSelector类,而EnableAutoConfigurationImportSelector就是自动配置关键。
SpringBoot的注解
@SpringBootApplication(@Configuration、@EnableAutoConfiguration、@ComponentScan)
@SpringBootConfiguration:表名springboot主类的配置类
@EnableAutoConfiguratin:把spring容器锁需要的应用注入到bean--自动配置的关键
@ComponenScan:扫描路径,将需要自动装配的类自动装配到spring容器
@Component:表示这个类为被定义成组件类,会将对象实例化放入spring容器中
@Service:表示这是一个业务层bean
@Controller:表示这是一个控制层bean,直接跳转页面,
@Repository:用于封装持久层抛出异常
@ResponseBody:将java对象转换成json数据
@RestController:
@AutoWired:按类型自动装配,如果找到多个name,按名称注入
@Resource:按名称注入,找不到名称按类型注入
@Configuration:表示这是一个配置类
@Bean:产生bean加入容器,
@RequestParam:用于绑定指定参数
@RequestBody:将json对象转换成java对象
@PathVariable:获取指定路径,占位符
springboot的运行流程?
1.调用静态方法,构建SpringApplication对象
2.调用构造方法(初始化):
判断是否为web环境
找到所有的应有上下文初始化器,根据spring.factories文件去找到他的所有的类的配置进行实例化
找到所有的应用监听器,根据spring.factories文件去找到他的所有的类的配置进行实例化
判断并设置main方法的定义类
3.调用run方法,将所有的初始化工作放在run方法执行
1.加载监听器并进行启动,发布监听事件
2.解析args参数,构建环境变量,发布应用环境准备事件
3.创建容器上下文,配置上下文、刷新上下文
4.发布run方法启动事件
5.回调,并初始化完成,可以准备接收事件
什么是Yaml
YAML 是一种人类可读的数据序列化语言。它通常用于配置文件。与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。可以看出 YAML 具有分层配置数据。
YAML 配置的优势在哪里 ?
YAML 现在可以算是非常流行的一种配置文件格式了,无论是前端还是后端,都可以见到 YAML 配置。那么 YAML 配置和传统的 properties 配置相比到底有哪些优势呢?
配置有序,在一些特殊的场景下,配置有序很关键
支持数组,数组中的元素可以是基本数据类型也可以是对象
简洁
相比 properties 配置文件,YAML 还有一个缺点,就是不支持 @PropertySource 注解导入自定义的 YAML 配置。