Spring Boot面试题

Spring Boot面试题

1、Spring Boot常用的starter有哪些?(高频)

1、spring-boot-starter-web (嵌入tomcat和web开发需要servlet与jsp支持)

2、spring-boot-starter-data-elasticsearch (es支持)

3、spring-boot-starter-data-redis (redis支持)

4、spring-boot-starter-amqp(消息队列支持)

5、spring-boot-starter-data-mongodb (mongodb的支持)

6、mybatis-plus-boot-starter(mybatis plus的支持)

7、mybatis-spring-boot-starter(mybatis的支持)

2、Spring Boot的配置文件有哪几种格式?(高频)

Spring Boot支持两种格式的配置文件:

1、application.properties

2、application.yml

在实际的项目开发一般的都是使用配置中心管理项目中的配置信息,常见的配置中心:Spring Cloud Config、Nacos

3、如何自定义Spring Boot应用程序的端口号?

方式一:在application.properties或者application.yml文件中添加server.port配置项指定端口

方式二:在启动spring boot项目的时候通过**-Dserver.port**参数指定项目的端口号

方式三:通过WebServerFactoryCustomizer设置端口号,如下所示

在这里插入图片描述

4、Spring Boot有哪几种读取配置的方式?(高频)

Spring Boot 可以通过

1、@Value

2、Environment接口

3、@ConfigurationProperties

5、Spring Boot项目的自动化配置原理是什么?(高频)

在Spring Boot项目中有一个注解@SpringBootApplication,这个注解是对三个注解进行了封装:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan其中@EnableAutoConfiguration是实现自动化配置的核心注解。该注解的源码如下所示:

在这里插入图片描述

该注解通过@Import注解导入AutoConfigurationImportSelector,这个类实现了一个导入器接口ImportSelector。在该接口中存在一个方法selectImports,如下所示:

在这里插入图片描述

该方法的返回值是一个数组,数组中存储的就是要被导入到spring容器中的类的全类名。在AutoConfigurationImportSelector类中重写了这个方法,该方法内部就是读取了项目的classpath路径下META-INF/spring.factories文件中的所配置的类的全类名。
如下所示:

在这里插入图片描述

在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。

总结:在项目启动的时候,spring boot框架会自动读取META-INF/spring.factories配置文件中org.springframework.boot.autoconfigure.EnableAutoConfiguration所配置的配置类,然后将其中所定义的bean根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值