Spring Boot 高频面试题

398 阅读3分钟

欢迎关注WX公众号:“程序猿补课班”,分享Java相关技术知识,学习经验,面试经验等。小伙伴快来补课吧!

正文开始

  1. Spring Boot 有哪些优点?
  • 1、减少开发,测试时间和努力。

  • 2、使用 JavaConfig 有助于避免使用 XML。

  • 3、避免大量的 Maven 导入和各种版本冲突。

  • 4、没有单独的 Web 服务器需要。

  • 5、需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将@Autowired 添加到 bean 方法中,以使 Spring 自动装入需要的依赖关系中。

2.Spring 和 SpringBoot 有什么不同?

首先,最重要的一点,Spring Boot是Spring的扩展,使用“约定优于配置”的理念开发,所以使用Spring Boot开发同样的功能,往往不需要像Spring那样手动配置。Spring Boot的自动装配,使各个功能模块的引入和配置变得非常简单,几乎可以做到0配置。

其次,如果展开去说,Spring Boot在应用容器配置、数据库配置、安全配置、测试和部署方便都与Spring有不同,但基本上都更加简单,受益于自动装配。

综上所述,最大的区别就是Spring更多的需要人工配置,Spring Boot实现了自动装配。

3.Spring Boot 自动配置原理是什么?

@Configuration

@ComponentScan

@EnableAutoConfiguration

其中 @EnableAutoConfiguration 是实现自动配置的入口,该注解又通过 @Import 注解导入了AutoConfigurationImportSelector,在该类中加载 META-INF/spring.factories 的配置信息。然后筛选出以 EnableAutoConfiguration 为 key 的数据,加载到 IOC 容器中,实现自动配置功能!

4.你如何理解 Spring Boot 中的 Starters?

tarters 可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式

集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。如你想使用 Spring JPA 访

问数据库,只要加入 spring-boot-starter-data-jpa 启动器依赖就能使用了。

图片

5.Spring Boot 有哪几种读取配置的形式?

@PropertySource

@Value

@Environment,

@ConfigurationProperties

6.Spring Boot 的配置文件有哪几种格式?

1 , properties文件:

app.user.name = helloword

2, yml文件:

app:

  user:

    name: helloword

7.SpringBoot运行项目的几种方式?

1、 打成jar包,使用java -jar xxx.jar运行

2、 打成war包,放到tomcat里面运行

直接用maven插件运行 maven spring-boot:run

直接执行main方法运行

8.SpringBoot中有哪些常用注解

@ComponentScan  :作用扫描

@MapperScan  :扫描mapper

@SpringBootApplication 组合注解

@EnableAutoConfiguration 开启自动配置的功能

@RestController注解是@Controller和@ResponseBody的合集。

使用在类上,表示该类是控制器,并且类中所有控制器方法的返回值直接填入HTTP响应体中,是RESTful风格的控制器,控制器方法返回JSON数据。

@AutoWired

自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。

@Qualifier

当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用。@Qualifier限定描述符除了能根据名字进行注入,但能进行更细粒度的控制如何选择候选者。

@Resource(name=”name”,type=”type”)

没有括号内内容的话,默认byName。与@Autowired干类似的事。

@ControllerAdvice

包含@Component,可以被扫描到。统一处理异常。

如有错漏之处,敬请指正