SpringBoot面试题

###谈谈你对SpringBoot的理解,他有哪些特性(优点)?

Springboot的用来快速开发Spring应用的一个脚手架,其设计目的是用来简化新Spring应用的初始化搭建以及开发过程。

1.Springboot提供了很多内置的starter结合自动配置,对主流框架无配置集成。开箱即用。

2.Springboot简化了开发,采用JavaConfig的方式可以使用零xml的方式进行开发。

3.springboot内置web容器无需依赖外部web服务器。省略了web。xml,直接运行jar文件就可以启动web应用。

4,springboot帮我管理了常用的第三方依赖的版本,减少出现版本冲突的问题。

5.springboot自带了监控功能,可以监控应用程序的运行状况。或者内存,线程池,Http请求统计等同时还提供了优雅关闭应用程序等功能。

###Springboot和Springboot的关系和区别?

springboot是spring生态的产品。

spring Framework是一个容器框架

springboot他不是一个框架,他是一个可以快速构建基于Spring的脚手架(里面包含了spring和各种框架),为开发spring生态其他框架铺平道路。

2个不是一个层面的东西,没有可比性。

###SpringBoot的核心注解

1.@SpringBootApplication注解:这个纾解标识了一个Springboot工程,它实际上是另外三个注解的集合,这三个注解是:

2.@SpringbootConfiguration:这个注解实际就是一个@Configuration,表示启动类也是一个配置类

3.@EnableAutoConfiguration:向Spring容器导入了一个Selector,用来加载ClassPath下SpringFactories中所定义的自动配置类,将这些自动加载为配置Bean。

4.@Conditional也很关键,如果没有它,我们无法在自定义应用中进行定制开发,

*@ConditionalOnBean,

*@ConditionalOnClass,

*@ConditionalOnExpression,

*@ConditionalOn MissingBean

###SpringBoot的自动配置原理

1.通过@SpringbootConfiguration引入了@EnableAutoConfiguration(负责启动自动配置功能)

2.@EnableAutoConfiguration引入了@Import

3.Spring容器启动时:加载IOC容器时会解析@Import注解。

4.@Import导入了一个deferredImportSelector,它会使SpringBoot的自动配置类的顺序在最后,这样方便我们扩展和覆盖。

5.然后读取所有的/META-INF/spring.factories文件。(SPI)

6.过滤出所有AutoConfigurationClass类型的类。

7.最后通过@Condition排除无效的自动配置类。

你可能感兴趣的:(spring,boot,后端,java)