四渡赤水,防溺水手抄报,艾滋病检测-共享沙滩,大海与沙滩新的生活方式

admin 2019-05-21 阅读:264

面试了一些人,简历上都说自己了解 Spring Boot, 或许说正在学习 Spring Boot,一问他们时,都只停留在简略的运用阶段,许多东西都不清楚,也让我对面试者大失人望。

下面,我给我们总结下有哪些 Spring Boot 的面试题,这是我常常拿来问面试者的,期望对你有协助。

1、什么是 Spring Boot?


Spring Boot 是 Spring 开源安排下的子项目,是 Spring 组件一站式解决方案,首要是简化了运用 Spring 的难度,简省了深重的装备,供给了各种发动器,开发者能快速上手。

2、为什么要用 Spring Boot?


Spring Boot 长处十分多,如:

  • 独立运转
  • 简化装备
  • 主动装备
  • 无代码生成和XML装备
  • 运用监控
  • 上手简单

Spring Boot 集这么多长处于一身,还有理由不运用它呢?

3、Spring Boot 的中心装备文件有哪几个?它们的差异是什么?


Spring Boot 的中心装备文件是 application 和 bootstrap 装备文件。

application 装备文件这个简单了解,首要用于 Spring Boot 项目的主动化装备。

bootstrap 装备文件有以下几个运用场景。

  • 运用 Spring Cloud Config 装备中心时,这时需求在 bootstrap 装备文件中增加连接到装备中心的装备特点来加载外部装备中心的装备信息;
  • 一些固定的不能被掩盖的特点;
  • 一些加密/解密的场景;

4、Spring Boot 的装备文件有哪几种格局?它们有什么差异?


.properties 和 .yml,它们的差异首要是书写格局不同。

1).properties

app.user.name = javastack

2).yml


app:
user:
name: javastack

别的,.yml 格局不支撑 @PropertySource 注解导入装备。

5、Spring Boot 的中心注解是哪个?它首要由哪几个注解组成的?


发动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的中心注解,首要组合包含了以下 3 个注解:

@SpringBootConfiguration:组合了 @Configuration 注解,完成装备文件的功用。

@EnableAutoConfiguration:翻开主动装备的功用,也能够封闭某个主动装备的选项,如封闭数据源主动装备功用: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring组件扫描。

6、敞开 Spring Boot 特性有哪几种办法?


1)承继spring-boot-starter-parent项目

2)导入spring-boot-dependencies项目依靠

7、Spring Boot 需求独立的容器运转吗?


能够不需求,内置了 Tomcat/ Jetty 等容器。

8、运转 Spring Boot 有哪几种办法?


1)打包用指令或许放到容器中运转

2)用 Maven/ Gradle 插件运转

3)直接履行 main 办法运转

9、Spring Boot 主动装备原理是什么?


注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 便是主动装备的中心,首要它得是一个装备文件,其次依据类途径下是否有这个类去主动装备。

10、Spring Boot 的目录结构是怎样的?



cn
+- javastack
+- MyApplication.java
|
+- customer
| +- Customer.java
| +- CustomerController.java
| +- CustomerService.java
| +- CustomerRepository.java
|
+- order
+- Order.java
+- OrderController.java
+- OrderService.java
+- OrderRepository.java

这个目录结构是干流及引荐的做法,而在主进口类上加上 @SpringBootApplication 注解来敞开 Spring Boot 的各项才能,如主动装备、组件扫描等。

11、你怎么了解 Spring Boot 中的 Starters?


Starters能够了解为发动器,它包含了一系列能够集成到运用里边的依靠包,你能够一站式集成 Spring 及其他技能,而不需求处处找示例代码和依靠包。如你想运用 Spring JPA 拜访数据库,只需参加 spring-boot-starter-data-jpa 发动器依靠就能运用了。

Starters包含了许多项目中需求用到的依靠,它们能快速继续的运转,都是一系列得到支撑的办理传递性依靠。

12、怎么在 Spring Boot 发动的时分运转一些特定的代码?


能够完成接口 ApplicationRunner 或许 CommandLineRunner,这两个接口完成办法相同,它们都只供给了一个 run 办法,具体请看这篇文章《Spring Boot Runner发动器》。

13、Spring Boot 有哪几种读取装备的办法?


Spring Boot 能够经过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量,具体请看这篇文章《Spring Boot读取装备的几种办法》。

14、Spring Boot 支撑哪些日志结构?引荐和默许的日志结构是哪个?


Spring Boot 支撑 Java Util Logging, Log4j2, Lockback 作为日志结构,假如你运用 Starters 发动器,Spring Boot 将运用 Logback 作为默许日志结构。

15、SpringBoot 完成热布置有哪几种办法?


首要有两种办法:

  • Spring Loaded
  • Spring-boot-devtools

16、你怎么了解 Spring Boot 装备加载次序?


在 Spring Boot 里边,能够运用以下几种办法来加载装备。

1)properties文件;

2)YAML文件;

3)体系环境变量;

4)指令行参数;

等等……

17、Spring Boot 怎么界说多套不同环境装备?


供给多套装备文件,如:


applcation.properties

application-dev.properties

application-test.properties

application-prod.properties

18、Spring Boot 能够兼容老 Spring 项目吗,怎么做?


能够兼容,运用 @ImportResource 注解导入老 Spring 项目装备文件。

19、维护 Spring Boot 运用有哪些办法?


  • 在生产中运用HTTPS
  • 运用Snyk查看你的依靠联系
  • 晋级到最新版别
  • 启用CSRF维护
  • 运用内容安全策略避免XSS进犯

20、Spring Boot 2.X 有什么新特性?与 1.X 有什么差异?


  • 装备改变
  • JDK 版别晋级
  • 第三方类库晋级
  • 呼应式 Spring 编程支撑
  • HTTP/2 支撑
  • 装备特点绑定
  • 更多改善与加强…

更多Java面试具体内容重视后台私信“Java面试”即可获取