Spring Boot常见面试题总结

简介: Spring Boot常见面试题总结

(原创不易,你们对阿超的赞就是阿超持续更新的动力!)

(以免丢失,建议收藏)

Spring Boot自动装配

含义:

SpringBoot的核心就是自动配置,自动配置又是基于条件判断来配置Bean

主要关注的几个注解如下:

@SpringBootConfiguration:标记当前类为配置类

@EnableAutoConfiguration:开启自动配置

@ComponentScan:扫描主类所在的同级包以及下级包里的Bean


关键是@EnableAutoConfiguration

最关键的要属@Import(EnableAutoConfigurationImportSelector.class),

借助EnableAutoConfigurationImportSelector,@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器:

通过@Import(AutoConfigurationImportSelector.class)导入的配置功能,

AutoConfigurationImportSelector中的方法getCandidateConfigurations,得到待配置的class的类名集合,这个集合就是所有需要进行自动配置的类,而是是否配置的关键在于META-INF/spring.factories文件中是否存在该配置信息

Spring Boot常用注解

@SpringBootApplication(复合注解):

@SpringBootConfiguration:标记当前类为配置类,主要用于加载配置文件

@EnableAutoConfiguration:自动配置的注解

@ComponentScan:主要用于组件扫描和自动装配(扫描主类所在的同级包以及下级包里的Bean)

@RestController:使用的效果是将方法返回的对象直接在浏览器上展示成json格式,用于标注控制层组件(包含@Controller和@ResponseBody);

@Configuration:主要用于加载配置文件,指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上;

@Bean:相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理;

@Autowired:自动注入,默认按类型装配;

@PathVariable:路径变量注解,获取参数;

@ImportResource:将资源导入容器;

@PropertySource:导入properties文件;

@MapperScan:Spring Boot支持mybatis组件的一个注解,通过此注解指定mybatis接口类的路径,即可完成对mybatis接口的扫描

Spring Boot需要独立容器进行运行吗

Spring Boot不需要独立的容器就可以运行,因为在Spring Boot工程发布的jar文件里已经包含了tomcat的jar文件。Spring Boot运行的时候,会创建tomcat对象,实现web服务功能。也可以将Spring Boot发布成war文件,放到tomcat里运行。

Spring Boot和Spring Cloud

SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务。

而SpringCloud专注于解决各个微服务之间的协调与配置,服务之间的通信、熔断、负载均衡等

技术维度并相同,并且SpringCloud是依赖于SpringBoot的,而SpringBoot并不是依赖与SpringCloud,甚至还可以和Dubbo进行优秀的整合开发

总结:

SpringBoot专注于快速方便的开发单个个体的微服务

SpringCloud是关注全局的微服务协调整理治理框架,整合并管理各个微服务,为各个微服务之间提供配置管理、服务发现、断路器、路由、事件总线等集成服务

SpringBoot不依赖于SpringCloud,SpringCloud依赖于SpringBoot,属于依赖关系

SpringBoot专注于快速,方便的开发单个的微服务个体,SpringCloud关注全局的服务治理框架


目录
相关文章
|
3月前
|
消息中间件 Java Kafka
Spring Boot面试题
Spring Boot 是一套快速开发框架,随着微服务架构应用不断普及,Spring Boot 的研发技术的掌握已经成为研发人员必会技能。与此同时,Spring Boot 开源生态建设能力非常强大,提供了很多应用组件,让Spring Boot 有丰富的三方开源软件的使用。
69 0
Spring Boot面试题
|
5月前
|
监控 安全 Java
Spring Boot2.6入门
Spring Boot2.6入门
55 0
|
2月前
|
XML Java 数据格式
Spring Boot面试讲解
Spring Boot面试讲解
15 0
|
4月前
|
Java 应用服务中间件 开发者
spring boot入门
spring boot入门
44 1
|
7月前
|
Cloud Native Java Go
《Spring Boot入门》
《Spring Boot入门》
52 0
|
11月前
|
消息中间件 监控 NoSQL
Spring Boot面试题2
Spring Boot面试题2
96 0
|
11月前
|
XML 前端开发 安全
Spring Boot面试题1
Spring Boot面试题
129 0
|
12月前
|
SQL druid Java
spring boot入门(中)
spring boot入门(中)
|
12月前
|
JSON 缓存 前端开发
spring boot入门(下)
spring boot入门(下)
|
12月前
|
JSON IDE Java
spring boot入门(上)
spring boot入门(上)