1、什么是springboot?
1、用来简化spring应用的初始搭建以及开发过程,使用特定的方式来进行配置(properties或yml文件) 2、创建独立的spring应用程序main方法运行嵌入的Tomcat无需部署war文件
3、简化maven配置
4、自动配置spring,添加对应功能starter自动化配置
总结:springboot简化了spring应用开发,约定大于配置、去繁从简,just run就能创建一个独立的、产品级别的应用
2、springboot有哪些优点?
(1)快速创建一个独立运行的spring项目与主流框架集成
(2)使用嵌入式的servlet容器,应用无需打包成war包
(3)starters自动依赖与版本控制
(4)大量的自动配置,简化开发,也可修改默认值
(5)准生产环境的运行应用监控
(6)与云计算的天然集成
3、SpringBoot、SpringMVC和Spring有什么区别?
(1)spring
spring最重要的特征就是依赖注入,所有的springModule不是依赖注入就是IOC控制反转,当我们恰当的使用DI或者IOC的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行
(2)springmvc
springmvc提供了一种分离式的方法来开发web应用;通过应用dispathservlet。ModelAndView和ViewResolver等一些简单的概念,开发web应用将会变得非常简单
(3)springboot
spring和springMvc的问题在于需要配置大量的参数,而springboot通过一个自动配置和启动的项目来姐姐这个问题,为了更快的构建产品的就绪应用程序,springboot提供了一些非功能性特征
4、什么是自动化配置?
spring和springmvc的问题在于需要配置大量的参数,而springboot提供了配置应用程序和框架所需要的基本配置,这就是自动配置。
5、什么是SPring Boot Stater?
Starter可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一战式集成Spring及其他技术,而不需要到处找示例代码和依赖包;starter包换了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。
6、SpringBoot的配置文件有哪几种格式?
Spring boot支持两种格式的配置文件 1、application.properties 2、application.yml 在实际的项目开发一般都是使用配置中心管理项目的配置信息,常见的配置中心:Spring Cloud Config、Nacos
7、Springboot有哪几种读取配置文件的方式
springboot可以通过:
1、@Value
2、Environment接口
3、@Configuration来绑定变量
8、如何重新加载SpringBoot上的更改,而无需重新启动服务器?
使用SpringBoot所提供的devtools工具就可以实现无需重启服务器而加载最新的代码。
9、Spring boot的核心注解是哪个?它主要由哪几个注解组成的?
@SpringBootApplication。它是SpringBoot的核心注解,主要组合包含了以下3个注解:
1、@SpringBootConfiguration: 组合了@Configuration注解,实现配置文件的功能
2、EnableAutoConfiguration: 打开自动配置的功能,也可以关闭某个自动配置的选项
3、ComponentScan:Spring组件扫描
10、运行SpringBoot有哪几种方式?
方式一:直接通过java -jar xxx。jar的方式运行
方式二:将xxx.jar制作成Docker镜像,然后借助Docker容器进行运行,并且可以使用docker-compose对多个容器进行统一编排
11、Spring Boot打成的jar和普通的jar有什么区别
区别:
1、springboot羡慕最终打包成的jar是可执行jar,这种jar可以直接通过java -jar xxx.jar命令直接运行,这种jar不可以作为普通的jar被其他项目所依赖,即是依赖了也无法使用其中的类
2、SpringBoot的jar无法被其他项目依赖,主要还是它和普通jar的结构不同,普通的jar包,解压后直接就是包名,包就是我们的代码,而springboot打包成的可执行jar解压后,在\BOOT-INF|classes目录下才是我们的代码,因此无法被直接引用
12、Springboot中如何实现定时任务?
在SpringBoot中可以使用两种定时任务框架:
(1)Spring Task
(2)Quartz 一般在项目中使用Spring Task就可以了,因为Spring Task是Spring框架提供的可以和SpringBoot进行无缝集成。具体的使用方式如下所示:
1、在启动类上使用@EnableScheduling注解开启定时任务支持
2、在指定的方法上使用@Scheduled注解来指定任务的执行顺序
13、怎么禁用某些自动化配置特性
如果我们禁用某些自动配置特性,可以使用@SpringBootApplication注解的exclude属性来指明
14、SpringBoot项目的自动化配置原理是什么?
在Spring程序mian方法中添加 @SpringBootApplication或者EnableAutoConfiguration会自动去maven中读取每一个starter中的spring。factories文件,该文件里配置了所有需要被创建Spring容器中的bean。
15、 开启springBoot特性有哪几种方式?
(1)继承spring-boot-starter-parent
(2)导入spring-boot-dependencies项目依赖
16、SpringBoot需要独立的容器运行吗
可以不需要,内置了Tomcat/Jetty等容器
17、springboot的启动流程
首先从main找到run()方法,在执行run()方法之前new一个SpringApplication对象
进入run()方法,创建应用监听器SpringApplicationRunListeners开始监听
然后加载SpringBoot配置环境(ConfigurableEnvironment),然后把配置环境(Environment)加入监听对象中
然后加载应用上下文(ConfigurableApplicationContext),当做run方法的返回对象
最后创建Spring容器,refreshContext(context),实现starter自动化配置和bean的实例化等工作。