面试网> 面试题库 > IT面试题 > 技术干货:spring boot面试题及答案

技术干货:spring boot面试题及答案

面试网2020/1/9 10:46:160人围观
简介做Java开发,没有人敢小觑 Spring Boot的重要性,现在出去面试,无论多小的公司 or 项目,都要跟你扯一扯 Spring Boot,扯一扯微服务,不会?没用过?Sorry,我们不合适! ...

    做Java开发,没有人敢小觑 Spring Boot的重要性,现在出去面试,无论多小的公司 or 项目,都要跟你扯一扯 Spring Boot,扯一扯微服务,不会?没用过?Sorry,我们不合适!

    今天小编就给大家整理了10道Spring Boot面试题,希望能够帮助到刚刚走出校门的小伙伴以及准备寻找新的工作机会的小伙伴。

1、什么是 Spring Boot?

    传统的 SSM/SSH 框架组合配置繁琐臃肿,不同项目有很多重复、模板化的配置,严重降低了 Java 工程师的开发效率,而 Spring Boot 可以轻松创建基于 Spring 的、可以独立运行的、生产级的应用程序。通过对 Spring 家族和一些第三方库提供一系列自动化配置的 Starter,来使得开发快速搭建一个基于 Spring 的应用程序。

    Spring Boot 让日益臃肿的 Java 代码又重回简洁。在配合 Spring Cloud 使用时,还可以发挥更大的威力。

2、Spring Boot 中如何解决跨域问题?

    跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过(CORS,Cross-origin resource sharing) 来解决跨域问题。

    这种解决方案并非 Spring Boot 特有的,在传统的 SSM 框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS ,现在则是通过 @CrossOrigin 注解来解决跨域问题。

3、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

    Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。

    application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。

    bootstrap 配置文件有以下几个应用场景。

    ①使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;

    ②一些固定的不能被覆盖的属性;

    ③一些加密/解密的场景;

4、运行Spring Boot的方式

    ①直接执行main方法运行;

    ②用Maven / Gradle插件运行;

    ③打成jar包,通过java -jar命令直接运行。

5、Spring Boot自动配置的原理

    在Spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration。会自动去maven中读取每个starter中的spring.factories文件,该文件里配置了所有需要被创建spring容器中的bean。

    Spring Boot 在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR。

    根据spring.factories配置加载AutoConfigure类。

    根据@Conditional注解的条件,进行自动配置并将Bean注入Spring Context。

6、如何使用 Spring Boot 实现异常处理?

    Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法。 我们通过实现一个ControlerAdvice 类,来处理控制器类抛出的所有异常。

7、Spring Boot有哪些优点?

    ①减少开发,测试时间和努力。

    ②使用JavaConfig有助于避免使用XML。

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

    ④提供意见发展方法。

    ⑤通过提供默认值快速开始开发。

    ⑥没有单独的Web服务器需要。这意味着你不再需要启动Tomcat,Glassfish或其他任何东西。

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

    ⑧基于环境的配置:使用这些属性,您可以将您正在使用的环境传递到应用程序:-Dspring.profiles.active = {enviornment}。在加载主应用程序属性文件后,Spring将在(application{environment} .properties)中加载后续的应用程序属性文件。

8、如何重新加载Spring Boot上的更改,而无需重新启动服务器?

    这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。

    Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。

    开发人员可以重新加载Spring Boot上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。Spring Boot在发布它的第一个版本时没有这个功能。

    这是开发人员最需要的功能。DevTools模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供H2数据库控制台以更好地测试应用程序。

9、Spring Boot中的监视器是什么?

    Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。

    有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为HTTP URL访问的REST端点来检查状态。

10、如何实现Spring Boot应用程序的安全性?

    为了实现Spring Boot的安全性,我们使用 spring-boot-starter-security依赖项,并且必须添加安全配置。它只需要很少的代码。配置类将必须扩展WebSecurityConfigurerAdapter并覆盖其方法。

最新信息

  • 技术干货:Hadoop面试题及答案

    一、什么是Hadoop? Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容: HDF...

  • 技术干货:ActiveMQ面试题及答案

    1、什么是 ActiveMQ? activeMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。2、Active...

  • 技术干货:RabbitMQ面试题及答案

    RabbitMQ作为目前应用相当广泛的消息中间件,在企业级应用、微服务应用中充当着重要的角色,特别是在一些典型的应用场景以及业务模块中具有重要的作用。 比如业务服务模块解耦,异步通信,高并发限流...

  • 关于Tomcat的13道面试题,你能答对几个?

    Tomcat服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它早期...

  • 12道Zookeeper面试题,让你不再束手无策!

    ZooKeeper是一个开源的分布式协调服务,可以基于ZooKeeper实现诸如:数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、配置维护,名字服务、分布式同步、分布...

  • 技术干货:spring boot面试题及答案

    做Java开发,没有人敢小觑 Spring Boot的重要性,现在出去面试,无论多小的公司 or 项目,都要跟你扯一扯 Spring Boot,扯一扯微服务,不会?没用过?Sorry,我们不合适! ...

标签列表