1.什么是SpringBoot?
SpringBoot建立在现有Spring框架至上。使用spring启动,我们避免了之前我们必须做的所有样板代码和配置。因此,SpringBoot可以帮助我们以最少的工作量,更加健壮地使用现有的Spring功能
2.为什么要用SpringBoot
一.独立运行
SpringBoot内嵌了各种servlet容器,Tomecat等,不需要达成war包部署到容器中,SpringBoot只要打成一个可执行jar包就能独立运行,所有依赖都在一个jar包内
二.减少配置
spring-boot-starter-web启动器自动依赖其他组件,减少maven配置
三.自动配置
springboot可以根据jar包自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web功能,无需其他配置
四.无代码生产和xml配置
springboot配置过程中无代码生成,也无需xml配置文件就能完成所有配置工作,这一切都用注解完成的。
五.应用监控
springboot提供一系列端点可以监控服务及应用,做健康检测
3.SpringBoot有哪些优点?
1.减少开发 2.使用javaConfig有助于避免使用XML 3.避免大量的Maven导入和各种版本冲突 4.需要更少的配置文件,只需要注解来完成
4.SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?
核心注解@SpringBootApplication,由以下三个注解组成
1.@SpringBootConfiguration:组合@Configuration注解,实现配置文件的功能
2.@EnableAotoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能
3.@Components Can:Spring组件扫描
5.运行SpringBoot有哪几种方式
1.打包用命令或者放到容器中运行
2.使用maven插件运行
3.直接执行main方法运行
6.如何理解SpringBoot中的Starters?
Starters是什么:
Starters可以理解为启动器,包含集成到应用里面的依赖包,Starters包含了许多项目中需要用到的依赖
Starters命名:
springboot启动器都是以spring-boot-starter-命名的
Starters分类:
1.springboot应用类启动器
启动器名称 | 功能描述 |
---|---|
spring-boot-starte | 包含自动配置,日志,yaml的支持 |
spring-boot-starte-web | 使用SpringMVC构建web工程,默认使用Tomcat容器 |
2.SpringBoot生产启动器
启动器名称 | 功能描述 |
---|---|
spring-boot-starter-actuator | 提供生产环境特性,能监控管理应用 |
3.springboot技术类启动器
启动器名称 | 功能描述 |
---|---|
spring-boot-starter-json | 提供对json的读写支持 |
spring-boot-starter-logging | 默认的日志启动器,默认使用Logback |
4.其他第三方启动器
7.如何在springboot启动的时候运行一些特点的代码
可以实现接口ApplicationRunner或者CommandLineRunner,这俩个接口实现方式一样,他们都提供一个run方法。CommandLineRunner:启动获取命令行参数
8.SpringBoot需要独立的容器运行吗?
不需要,内种Tomact容器
9.SpringBoot中的监视器是什么?
SpringBoot acruator(阿克斯维ter)是spring启动框架中的重要功能之一。springboot监视器可帮助您访问生态环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来相关人员触发警报消息。监视器模块公开了一组可直接作为Http URl访问的REST端点来检查状态
10.如何使用springboot实现异常处理
通过实现ControllerAdvice类,来处理控制器抛出所有异常
11.springboot常用的starter有哪些
spring-boot-starter-web:嵌入Tomcat和web开发需要servlet与jsp支持
spring-boot-starter-data-jpa:数据库支持
spring-boot-starter-data-redis:redis数据库支持
spring-boot-starter-data-solr:solr支持
mybatis-spring-boot-starter:第三方的mybatis集成starter
12.springboot实现热部署有哪几种方式
Spring Loaded
Spirng-boot-devtolls
13.如何理解SpringBoot配置加载顺序
在Springboot里面,可以使用以下几种方式来加载配置
1.properites文件
2.yaml文件
3.系统环境变量
4.命令行参数
14.springboot的核心配置文件有哪几个?他们的区别是什么?
SpringBoot的核心配置文件是application和bootstrap配置文件
application用于springboot项目的自动配置
bootstrap配置文件有以下几个应用场景
1.使用springcloud config配置中心时,这时需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息。
2.一些固定的不能被覆盖的属性
3.一些加密/解密的场景
15.如何集成springboot和ActiveMQ
使用spring-boot-starter-activemq依赖关系
16.什么是javaConfig?
springjavaConfig是spring社区的产品,提供配置spring loc容器的纯java方法。有助于避免使用xml配置。
javaConfig优点:
1.面向对象的配置。由于配置被定于为javaConfig中的类,因此用户可以充分利用java中的面向对象功能。一个配置类可以继承另一个,重写他的@Bean方法等
2.减少xml配置。
3.类型安全和重构友好。javaConfig提供了一种类型安全的方法来配置Spirng容器。由于java5.0对泛型的支持,现在可以按类型而不是按名称捡索bean,不需要任何强制转换或基于字符串查找
17.如何重新加载springboot上的更改,而无需重新启动服务器?
热部署
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
18.如何在springboot中禁用actuator端点安全性?
默认情况下,所有敏感的http端点都是安全的,只有具有actuator角色的用户才能访问他们。安全性是使用标准的httpServletRequest.isUserInRole方法实施的。我们可以使用来禁用安全性。只有在执行机构端点在防火墙后访问时,才建议禁用安全性
19.什么是yaml
yaml是一种人类可读的数据序列化语言。它通常用于配置文件。
与属性文件相比,如果我们想要配置文件中添加复杂的属性,yaml文件就更加结构化,而且更少混淆。可以看出taml具有分层配置数据
20.如何实现springboot应用程序的安全性?
使用spring-boot-starter-security(四k瑞尔停)依赖项,添加安全配置