一、什么是Spring Boot?
1.从它的作用来看
SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。
2.与Spring的关系
Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置,Spring Boot应用中这些第三方库几乎可以是零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。
二、为什么要使用Spring Boot?
1.先说说Spring Boot的优点
SpringBoot是伴随着Spring4.0诞生的;
从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架;
SpringBoot帮助开发者快速启动一个Web容器;
SpringBoot继承了原有Spring框架的优秀基因;
SpringBoot简化了使用Spring的过程。
2.从未来发展趋势看
微服务是未来发展的趋势,项目会从传统架构慢慢转向微服务架构,因为微服务可以使不同的团队专注于更小范围的工作职责、使用独立的技术、更安全更频繁地部署。而 继承了 Spring 的优良特性,与 Spring 一脉相承,而且 支持各种REST API 的实现方式。Spring Boot 也是官方大力推荐的技术,可以看出,Spring Boot 是未来发展的一个大趋势。
三、Spring Boot自动配置是如何实现的?
通过EnableAutoConfiguration注解,开启自动配置。然后通过Import注解导入AutoConfigurationImportSelector。在这个类中加载/META-INF/spring.factories文件的信息,然后筛选出以EnableAutoConfiguration为key的数据,加载到IOC容器中,实现自动配置功能。
四、简述述SpringBootApplication、 ComponentScan、 EnableAutoConfiguration、
SpringBootConfiguration 这几个注解的作用及他们之间的关系。
1.@EnableAutoConfiguration:这个注解是是Springboot根据我们所引入的jar包自动配置的,假设我们有自己的配置类则会覆盖。
2.@ComponentScan:是告诉springboot进行包扫描的(可以定义)。
3.@SpringBootApplication:注解等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan
4.@SpringBootConfiguration :继承自@Configuration,二者功能也一致,标注当前类是配置类,
并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。