- 1、Spring Boot 是什么?
2、Spring Boot 有哪些优缺点?
3、Spring Boot 框架的核心思想是什么?
4、Spring Boot 有哪些核心模块?
5、Spring Boot 的核心配置文件有哪些?
6、Spring Boot 的配置文件有哪几种格式?
7、Spring Boot 的核心注解是哪个?
8、SpringBootApplication 注解包含哪几个注解?
9、Spring Boot 最核心的注解有哪些?
10、Spring Boot 怎么根据指定条件注册 bean?
11、Spring Boot 有哪些条件注解?
12、Spring Boot 有哪两种方式集成?
13、Spring Boot 需要独立的容器运行吗?
14、Spring Boot 中的默认内嵌容器是?
15、Spring Boot 中的内嵌容器可以替换成别的么?
16、Spring Boot 自动配置原理是什么?
17、Spring Boot 开启自动配置的注解是?
18、Spring Boot 自动配置的类在哪注册?
19、Spring Boot 自动配置报告怎么查看?
20、Spring Boot 怎么排除某些自动配置?
21、Spring Boot 怎么开启和关闭自动配置?
22、Spring Boot 的目录结构是怎样的?
23、Spring Boot 中的 Starters 是什么?
24、Spring Boot Starters 有什么命名规范?
25、Spring Boot Starters 官方有哪些分类?
26、Spring Boot 怎么自定义一个 Starter?
27、Spring Boot 有哪几种运行方式?
28、Spring Boot 支持哪些应用打包方式?
29、Spring Boot 应用怎么 Debug 调试?
30、Spring Boot 可以配置随机端口吗?
47、Spring Boot 2.X 有什么新特性?
48、Spring Boot 怎么定制启动图案?
49、Spring Boot 怎么关闭启动图案?
50、Spring Boot 的默认编码是?
51、Spring Boot 怎么指定编码格式?
52、Spring Boot 应用如何优雅关闭?
1、Spring Boot 是什么?
2、Spring Boot 有哪些优缺点?
1)优点
快速构建项目。
对主流开发框架的无配置集成。
项目可独立运行,无须外部依赖Servlet容器。
提供运行时的应用监控。
极大地提高了开发、部署效率。
与云计算的天然集成。
2)缺点
版本迭代速度很快,一些模块改动很大。
由于不用自己做配置,报错时很难定位。
网上现成的解决方案比较少。
3、Spring Boot 框架的核心思想是什么?
4、Spring Boot 有哪些核心模块?
1、spring-boot
这是 Spring Boot 的主模块,也是支持其他模块的核心模块,主要包含以下几点:
1) 提供了一个启动 Spring 应用的主类,并提供了一个相当方便的静态方法,它的主要是作用是负责创建和刷新 Spring 容器的上下文;
2) 内嵌式的并可自由选择搭配的 WEB 应用容器,如:Tomcat, Jetty, Undertow等;
3) 对配置外部化的支持;
4) 提供一个很方便的 Spring 容器上下文初始化器,包括合理记录日志默认参数的支持。
2、spring-boot-autoconfigure
Spring Boot能根据类路径下的内容自动一些公共大型应用,提供的 @EnableAutoConfiguration 注解就能启用 Spring 功能的自动配置。
自动配置功能可以推断用户可能需要加载哪些 Spring Bean, 如:如果类路径下有 HicariCP 这个连接池的包,此时并未提供任何有效连接池的配置,那么 Spring Boot 就知道你可能需要一个连接池,并做相应配置。如果用户配置了其他连接池,那么 Spring Boot 会放弃自动配置。
3、spring-boot-starters
Starters,我们叫它启动器好了,它是包括一系列依赖的描述符。简单的说就是,它可以一站式的帮你打包 Spring 及相关技术应用,而不需要你到处找依赖和示例配置代码,它都帮你做好了。
例如,第一章我们在介绍 Spring Boot 的时候就说了 spring-boot-starter-web 这个启动器,你只要引用了这个启动器应用,就会自动配置 WEB 应用的能力。
spring-boot-starters 这个启动器这主要提供了 spring-boot, spring-context, spring-beans 这三个 Spring 模块而已。
4、spring-boot-cli
这是 Spring Boot 的命令行工具,用于编译和运行 Groovy 源程序,可以十分简单的编写并运行一个应用程序。它也能监控你的文件,一旦有变动就会自动重新编译和重新启动应用程序。
5、spring-boot-actuator
这是 Spring Boot 提供的执行端点,你可以更好的监控及和你的应用程序交互。这个模块提供了像健康端点、环境端点、Spring Bean端点等。
6、spring-boot-actuator-autoconfigure
这个原理同上,为 Spring Boot 执行端点提供自动配置。
7、spring-boot-test
Spring Boot测试模块,为应用测试提供了许多非常有用的核心功能。
8、spring-boot-test-autoconfigure
这个原理同上,为 Spring Boot 测试模块提供自动配置。
9、spring-boot-loader
这个模块可以用来构建一个单独可执行的 jar 包,使用 java -jar 就能直接运行。一般不会直接使用这个来打包,使用 Spring Boot 提供的 Maven 或者 Gradle 插件就行了。
10、spring-boot-devtools
开发者工具模块,主要为 Spring Boot 开发阶段提供一些特性,如修改了代码自动重启应用等。这个模块的功能是可选的,只限于本地开发阶段,当打成整包运行时这些功能会被禁用。
5、Spring Boot 的核心配置文件有哪些?
6、Spring Boot 的配置文件有哪几种格式?
7、Spring Boot 的核心注解是哪个?
启动类上面的注解是@SpringBootApplication,
8、SpringBootApplication 注解包含哪几个注解?
它也是 Spring Boot 的核心注解,主要组合包含了以下3个注解:
@SpringBootConfiguration:
组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:
打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:
@ComponentScan:Spring组件扫描。
9、Spring Boot 最核心的注解有哪些?
10、Spring Boot 怎么根据指定条件注册 bean?
@Conditional(MyCondition.class)
这句代码可以标注在类上面,表示该类下面的所有@Bean都会启用配置
也可以标注在方法上面,只是对该方法启用配置
11、Spring Boot 有哪些条件注解?
除了自己自定义Condition之外,Spring还提供了很多Condition给我们用
@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)
以上是一些常用的注解,其实就是条件判断,如果为true了就创建Bean,为false就不创建,就这么简单。
12、Spring Boot 有哪两种方式集成?
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
<!-- springcloud -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.sbl.pay.subaccount.SubaccountServerRunner</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
13、Spring Boot 需要独立的容器运行吗?
14、Spring Boot 中的默认内嵌容器是?
15、Spring Boot 中的内嵌容器可以替换成别的么?
16、Spring Boot 自动配置原理是什么?
17、Spring Boot 开启自动配置的注解是?
18、Spring Boot 自动配置的类在哪注册?
19、Spring Boot 自动配置报告怎么查看?
在配置文件中application.properties中添加debug = true
20、Spring Boot 怎么排除某些自动配置?
21、Spring Boot 怎么开启和关闭自动配置?
Java注解
@EnableAutoConfiguration(exclude = {org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration})
配置文件
spring: autoconfigure: exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
22、Spring Boot 的目录结构是怎样的?
23、Spring Boot 中的 Starters 是什么?
24、Spring Boot Starters 有什么命名规范?
25、Spring Boot Starters 官方有哪些分类?
26、Spring Boot 怎么自定义一个 Starter?
27、Spring Boot 有哪几种运行方式?
28、Spring Boot 支持哪些应用打包方式?
29、Spring Boot 应用怎么 Debug 调试?
30、Spring Boot 可以配置随机端口吗?
31、Spring Boot 怎么打一个可执行 Jar 包?
32、Spring Boot 支持 https 配置吗?
33、Spring Boot 怎么注册 Servlet?
34、Spring Boot Runner 是什么?
35、Spring Boot 支持哪些模板引擎?
36、Spring Boot 支持 Velocity 模板引擎吗?
37、Spring Boot 怎么做单元测试?
38、Spring Boot 支持哪些日志框架?
39、Spring Boot 有哪几种热部署方式?
40、Spring Boot 配置加载顺序是怎样的?
41、Spring Boot 如何定义不同环境配置?
42、Spring Boot 怎么兼容老 Spring 项目?
43、Spring Boot 应用有哪些保护手法?
44、Spring Boot 怎么注册事件监听器?
45、Spring Boot 应用如何监控和健康检查?