Java面试题-Spring Boot

文章目录

1.Spring Boot三个核心注解?

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项, 例如:java 如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring组件扫描。

2.如何自定义一个starter?

首先编写一个自动配置类,然后在spring.factories文件中配置使其生效,如果想要去读取配置文件就使用ConfigurationProperties指定前缀,然后在自动配置类中使用EnableConfigurationProperties启用配置类。

3.SpringBoot自动配置原理

SpringBoot的自动配置核心就是@EnableAutoConfiguration注解,这个注解有两个重要的东西:

一个是Registrar类,这个类就是为了获取到要扫描的包。

第二个就是AutoConfigurationImportSelector这个类,ImportSelector就是Spring中加载Bean的方式之一,他可以获取到加载了ImportSelector这个Bean的配置类的元数据,然后在SpringBoot中的作用其实就是加载了spring.factories这个文件,然后根据一些条件注解来完成注入容器的过程。

4.SpringBoot启动流程有了解过吗?

1.读取配置文件,初始化环境对象
2.创建 ApplicationContext 容器
3.注入容器(@ComponentScan@EnableAutoConfiguration
4.依赖注入
5.处理 Aware 接口
6.初始化阶段(执行 InitializingBean@PostConstruct

在前后分别有BeanPostProcessorBefore和BeanPostProcessorAfter

7.当然还有一些监听器可以对流程进行干预,直接看run方法的源码即可

5.CAP定理有了解过吗?Base理论呢?

C:一致性

A:可用性

P:分区容错性

Base理论:基本可用,允许出现软状态,保证最终一致性

相关推荐
lingchen19063 分钟前
MATLAB的数值计算(三)曲线拟合与插值
开发语言·matlab
gb421528728 分钟前
java中将租户ID包装为JSQLParser的StringValue表达式对象,JSQLParser指的是?
java·开发语言·python
一朵梨花压海棠go34 分钟前
html+js实现表格本地筛选
开发语言·javascript·html·ecmascript
曾经的三心草39 分钟前
Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
android·java·服务器
蒋星熠39 分钟前
Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物
开发语言·python·算法·flutter·设计模式·性能优化·硬件工程
Metaphor69240 分钟前
Java 高效处理 Word 文档:查找并替换文本的全面指南
java·经验分享·word
ChinaRainbowSea1 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程
stormsha1 小时前
飞算JavaAI炫技赛电商系统商品管理模块的架构设计与实现
java·架构·鸿蒙系统
minh_coo1 小时前
Spring框架事件驱动架构核心注解之@EventListener
java·后端·spring·架构·intellij-idea
enjoy嚣士1 小时前
springboot 之 HTML与图片生成 (2)
spring boot·html转图片