SpringBoot面试题

本文概述了Spring Boot的简捷应用部署方式和YAML配置的优越性,包括自动装配的原理、核心注解的作用以及Spring Boot的运行流程。同时,对比了YAML配置与传统properties的区别和优势。
摘要由CSDN通过智能技术生成

什么是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 配置。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值