精华内容
下载资源
问答
  • springboot面试题

    2020-03-16 19:54:01
  • 2021最新SpringBoot面试题【附答案解析】SpringBoot面试题及答案2021,SpringBoot2021最新面试题及答案,SpringBoot面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的。...

    2021最新SpringBoot面试题【附答案解析】SpringBoot面试题及答案2021,SpringBoot2021最新面试题及答案,SpringBoot面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的。这些答案难免会存在一些错误,仅供大家参考。如果发现错误还望大家多多包涵,不吝赐教,谢谢~

    SpringBoot最新面试题大汇总,附答案

    其实,博主还整理了,更多大厂面试题,直接下载吧

    下载链接:高清172份,累计 7701 页大厂面试题 PDF

    1、SpringBoot自动配置的原理是什么?

    SpringBoot启动的时候通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中所有的自动配置类,并对其进行加载,而这些自动配置类的类名都是以AutoConfiguration结尾来命名的,它实际上就是一个javaConfig形式的Spring容器配置类,它们都有一个@EnableConfigurationPerperties的注解,通过这个注解启动XXXProperties命名的类去加载全局配置中的属性,如server.port,而XXXProperties通过@ConfigurationProperties注解将全局配置文件中的属性与自己的属性进行绑定。

    2、SpringBoot 配置加载顺序?

    1、 properties文件 2、YAML文件 3、系统环境变量 4、命令行参数

    3、spring boot初始化环境变量流程?

    1、 调用prepareEnvironment方法去设置环境变量

    2、 接下来有三个方法getOrCreateEnvironmentconfigureEnvironmentenvironmentPrepared

    3、 getOrCreateEnvironment去初始化系统环境变量

    4、 configureEnvironment去初始化命令行参数

    5、 environmentPrepared当广播到来的时候调用onApplicationEnvironmentPreparedEvent方法去使用postProcessEnvironment方法load ymlproperties变量

    4、运行 SpringBoot 有哪几种方式?

    1、 打包用命令或者者放到容器中运行

    2、 用 Maven/ Gradle 插件运行

    3、 直接执行 main 方法运行

    5、SpringBoot 中如何解决跨域问题 ?

    跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORS,Cross-origin resource sharing) 来解决跨域问题。这种解决方案并非 SpringBoot 特有的,在传统的 SSM 框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS ,现在可以通过实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。

    @Configuration

    public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowCredentials(true)
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .maxAge(3600);
    }
    

    }

    6、SpringBoot如何配置log4j?

    在引用log4j之前,需要先排除项目创建时候带的日志,因为那个是Logback,然后再引入log4j的依赖,引入依赖之后,去src/main/resources目录下的log4j-spring.properties配置文件,就可以开始对应用的日志进行配置使用。

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

    打包用命令或者放到容器中运行

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

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

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

    直接执行main方法运行

    8、什么是JavaConfig?

    Spring JavaConfig是Spring社区的产品,它提供了配置Spring IoC容器的纯Java方法。因此它有助于避免使用XML配置。使用JavaConfig的优点在于:

    面向对象的配置。由于配置被定义为JavaConfig中的类,因此用户可以充分利用Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等。

    减少或消除XML配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在XML和Java之间来回切换。

    JavaConfig为开发人员提供了一种纯Java方法来配置与XML配置概念相似的Spring容器。

    从技术角度来讲,只使用JavaConfig配置类来配置容器是可行的,但实际上很多人认为将JavaConfig与XML混合匹配是理想的。

    类型安全和重构友好。JavaConfig提供了一种类型安全的方法来配置Spring容器。由于Java 5.0对泛型的支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串的查找

    9、运行 SpringBoot 有哪几种方式?

    1、 打包用命令或者放到容器中运行

    2、 用 Maven/ Gradle 插件运行

    3、 直接执行 main 方法运行

    10、SpringBoot 常用的 Starter 有哪些?

    1、 spring-boot-starter-web :提供 Spring MVC + 内嵌的 Tomcat 。

    2、 spring-boot-starter-data-jpa :提供 Spring JPA + Hibernate 。

    3、 spring-boot-starter-data-Redis :提供 Redis 。

    4、 mybatis-spring-boot-starter :提供 MyBatis 。

    11、SpringBoot与SpringCloud 区别

    12、如何集成SpringBoot和ActiveMQ?

    13、SpringBoot 有哪几种读取配置的方式?

    14、SpringBoot 2.X 有什么新特性?与 1.X 有什么区别?

    15、SpringData 项目所支持的关系数据存储技术:

    16、如何在自定义端口上运行SpringBoot应用程序?

    17、SpringBoot默认支持的日志框架有哪些?可以进行哪些设置?

    18、Spring Initializr 是创建 SpringBoot Projects 的唯一方法吗?

    19、Async异步调用方法

    20、您使用了哪些starter maven依赖项?

    21、SpringBoot 有哪些优点?

    22、如何给静态变量赋值?

    23、SpringBoot、Spring MVC 和 Spring 有什么区别?

    24、如何实现SpringBoot应用程序的安全性?

    25、SpringBoot微服务中如何实现 session 共享 ?

    26、SpringBoot 中的监视器是什么?

    27、我们如何监视所有 SpringBoot 微服务?

    28、你如何理解 SpringBoot 配置加载顺序?

    29、如何禁用特定的自动配置类?

    30、什么是CSRF***?

    31、什么是 WebSockets?

    全部答案,整理好了,直接下载吧

    下载链接:全部答案,整理好了

    其实,博主还整理了,更多大厂面试题,直接下载吧

    下载链接:高清172份,累计 7701 页大厂面试题 PDF

    展开全文
  • SpringBoot面试题.pdf

    2021-06-16 14:37:53
    SpringBoot面试题
  • 2021年SpringBoot面试题30道

    万次阅读 多人点赞 2021-03-22 23:52:44
    文章目录前言SpringBoot面试题内容1.谈谈你对Spring Boot的理解?2. 为什么需要Spring Boot?3. 说出Spring Boot 的优点4. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?5. Spring Boot 的配置文件有哪几...

    文章目录


    前言

    作为应届生,处于找工作中ing。今年2月份刚刚整理出来的面试题,时间比较赶就没有按照模块分类排序了。总而言之,顺序比较乱,希望大家耐着性子 看。如果实在介意,评论告知,我会视情况作修改的。另外如果大家觉得我找的答案不够清晰,欢迎私信或者评论只出,我看到都会去修改的!


    面试题系列文章传送门

    2021年后端开发面试题整理合集


    SpringBoot面试题内容

    1.谈谈你对Spring Boot的理解?

    SpringBoot主要用来简化使用Spring的难度和繁重的XML配置,它是Spring组件的一站式解决方案,采取了习惯优于配置的方法。通过.properties或者.yml文件替代了Spring繁杂的XML配置文件,同时支持@ImportResource注解加载XML配置。Spring Boot还提供了嵌入式HTTP服务器、命令行接口工具、多种插件等等,使得应用程序的测试和开发简单起来。

    2. 为什么需要Spring Boot?

    Spring Boot 优点非常多,如:独立运行、简化配置、自动配置和无需部署war文件等等

    3. 说出Spring Boot 的优点

    简化开发,提高整体生产力
    Spring Boot 使用 JavaConfig 有助于避免使用 XML,同时避免大量的Maven导入和各种版本冲突
    Spring Boot 引导的应用程序可以很容易地与 Spring 生态系统集成,如Spring JDBC、Spring ORM、Spring Data、Spring Security等等
    Spring Boot 应用程序提供嵌入式HTTP服务器,如Tomcat和Jetty,可以轻松地开发和测试web应用程序。
    Spring Boot 提供命令行接口工具,用于开发和测试应用程序
    Spring Boot 提供了多种插件,可以使用内置Maven工具开发和测试 应用程序
    Spring Boot 没有单独的 Web 服务器需要,这意味着不再需要启动 Tomcat或其他任何东西

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

    Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
    application 配置文件主要用于 Spring Boot 项目的自动化配置。
    bootstrap 配置文件有三个应用场景。
    使用Spring Cloud Config配置中心时,需要在 bootstrap 配置文件中添加连接到配置中心的配置属性,来加载外部配置中心的配置信息;
    一些固定的不能被覆盖的属性;
    一些加密或解密的场景;

    5. Spring Boot 的配置文件有哪几种格式?它们有什么区别?

    主要有.properties 和 .yml格式,它们的区别主要是书写格式不同。另外,.yml 格式不支持 @PropertySource 注解导入配置。

    6. 开启SpringBoot特性有哪几种方式?

    继承spring-boot-starter-parent项目
    导入spring-boot-dependencies项目依赖

    7. 什么是Spring Boot Starter?

    Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,可以一站式集成 Spring 和其他技术,而不需要到处找示例代码和依赖包。Spring Boot Starter的工作原理是:Spring Boot 在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR包,根据spring.factories配置加载AutoConfigure类,根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context

    8. Spring Boot 有哪几种读取配置的方式?

    使用@Value注解加载单个属性值
    使用@ConfigurationProperties注解可以加载一组属性的值,针对于要加载的属性过多的情况,比@Value注解更加简洁

    9. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

    Spring Boot 支持 Java Util Logging, Log4j2, Logback 作为日志框架,如果使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架,推荐的日志框架是Log4j2。

    10. Spring Boot 可以兼容老 Spring 项目吗?

    可以兼容,使用 @ImportResource 注解导入老 Spring 项目配置文件。

    11. 保护 Spring Boot 应用有哪些方法?

    在生产中使用HTTPS
    使用Snyk检查依赖关系
    升级到最新版本
    启用CSRF保护
    使用内容安全策略防止XSS攻击

    12. 什么是 JavaConfig?

    JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法,有助于避免使用 XML 配置。

    13. (Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的)介绍一下 @SpringBootApplication 注解

    Spring Boot 的核心注解是@SpringBootApplication,它也是启动类使用的注解,主要包含了 3 个注解:
    @SpringBootConfiguration:它组合了 @Configuration 注解,实现配置文件的功能。
    @EnableAutoConfiguration:具有打开自动配置的功能,也可以关闭某个自动配置的选项。
    @ComponentScan:用于Spring组件扫描。

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

    @EnableAutoConfiguration注解、 @Configuration注解和 @ConditionalOnClass注解组成了Spring Boot自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。具体是通过maven读取每个starter中的spring.factories文件,该文件配置了所有需要被创建在spring容器中的bean。

    15. 你如何理解 Spring Boot 配置加载顺序?

    Spring Boot配置加载顺序优先级是:propertiese文件、YAML文件、系统环境变量、命令行参数。

    16. Spring Boot支持哪些嵌入式Web容器?

    Spring Boot支持的嵌入式servlet容器有: Tomcat、Jetty、Undertow。

    17. 什么是YAML?

    YAML 是一种可读的数据序列化语言,它通常用于配置文件。

    18. YAML 配置的优势在哪里 ?

    配置有序
    支持数组,数组中的元素可以是基本数据类型或者对象
    简洁方便

    19. Spring Boot 是否可以使用 XML 配置 ?

    Spring Boot 推荐使用 Java 配置同时支持 XML 配置,通过 @ImportResource 注解加载 XML 配置。

    20. application.properties和bootstrap.properties有何区别 ?

    bootstrap比 applicaton 优先加载,配置在应用程序上下文的引导阶段生效, 而且boostrap 里面的属性不能被覆盖;
    application用于 spring boot 项目的自动化配置。

    21. 什么是 Spring Profiles?

    Spring Profiles 允许用户根据配置文件(dev,prod,test等等)来注册 bean。当应用程序在开发环境中运行时,只有某些 bean 可以加载,而在生产环境中,某些其他 bean 也可以加载。比如要求 Swagger 文档仅适用于测试环境,并且禁用所有其他文档,可以使用配置文件来完成。

    22. 如何在自定义端口上运行 Spring Boot 应用程序

    可以在 application.properties 配置文件中指定端口,比如server.port = 8090

    23. 如何实现 Spring Boot 应用程序的安全性?

    为了实现 Spring Boot 的安全性,可以使用 spring-boot-starter-security 依赖,添加安全配置和重写WebSecurityConfigurerAdapter 配置类的方法。

    24. 什么是 WebSocket?

    WebSocket 是一种计算机通信协议,通过单个 TCP 连接提供全双工通信信道。
    WebSocket 是双向的 ,使用 WebSocket 客户端或服务器可以实现消息发送。
    WebSocket 是全双工的 ,客户端和服务器通信是相互独立的。
    WebScoket 使用单个 TCP 连接 ,与http 相比,WebSocket 消息数据交换要轻得多。

    25. Spring Boot 中的监视器是什么?(什么是Spring Boot Actuator)?

    Spring boot actuator 是 spring 启动框架中的重要功能之一,Spring boot 监视器可以访问生产环境中正在运行的应用程序的当前状态。监视器模块公开了一组可直接作为 HTTP URL 访问的 REST 端点来检查状态。

    26. 如何在 Spring Boot 中禁用 Actuator 端点安全性?

    默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR 角色的用户才能访问它们。
    安全性是使用标准的 HttpServletRequest.isUserInRole 方法实施的,可以用来禁用安全性。
    只有在执行机构端点在防火墙后访问时,才建议禁用安全性。

    27. 什么是 CSRF 攻击?

    CSRF 代表跨站请求伪造,这是一种攻击,迫使最终用户在当前通过身份验证的Web 应用程序上执行不需要的操作。CSRF 攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应。

    28. 如何使用 Spring Boot 实现异常处理?

    Spring 通过使用 @ControllerAdvice 注解处理异常,实现一个ControllerAdvice 类来处理控制器类抛出的所有异常。

    29. 如何监视所有 Spring Boot 微服务?

    Spring Boot 提供监视器端点监控各个微服务,这些端点对于获取有关应用程序的信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助。但是用监视器的一个主要缺点是,必须单独打开应用程序的知识点以了解其状态或健康状况。

    30. 运行 Spring Boot 有哪几种方式?

    用命令打包或者放到容器中运行
    用 Maven 插件运行
    直接执行 main 方法运行


    有问题欢迎私信/评论指出,谢谢您的观看,希望对您有帮助哦!
    https://lianghongbin.blog.csdn.net/

    展开全文
  • SpringBoot面试题

    2020-05-26 16:51:50
    1、SpringBoot的运行机制 从@SpringBootApplication开始,进来之后包含三个注解,第一个注解是@SpringBootConfiguration,其实也就是spring中的@Configuration,这个注解表明这个类是配置类,第二个注解是@...

    1、SpringBoot的运行机制

    从@SpringBootApplication开始,进来之后包含三个注解,第一个注解是@SpringBootConfiguration,其实也就是spring中的@Configuration,这个注解表明这个类是配置类,第二个注解是@ComponentScan,这个注解也是spring里面的,他用来将指定包下面需要装配的组件注册到容器里面,第三个注解是@EnableAutoConfiguration,这个注解是SpringBootA自动配置的核心注解,进入@EnableAutoConfiguration以后,会有两个注解,第一个是@AutoConfigurationPackage,作用是将主配置类所在的包作为自动配置的包进行管理。第二个注解是@Import,导入一个类到容器中,根据meta-info下面的在spring.factories的配置进行导入。

    总结:SpringBoot通过根据配置文件自动装配所属依赖的类,再用动态代理的方式,注入到spring容器里面。

    2、@Autowired

    实现依赖自动注入的功能,可以作用于构造方法,属性,或者方法

    • 默认按照类型去容器中查找
    • 如果找到多个相同类型的组件,再将属性名作为组件的id去容器中查找(比如一个service有多个实现类,注入的时候将具体的实现类注入即可)

    3、SpringBoot是怎么加载配置文件的

    4、Bean的生命周期

    N、servlet的生命周期

    • servlet是单实例多线程的,因此会有并发的问题
    • 第一次访问时,服务器创建servlet并调用init()方法进行初始化,然后调用service
    • 每当请求来到的时候,服务器创建一个线程,并调用servlet方法完成自己的业务逻辑
    • 当servlet被移除和服务器正常关闭的时候,服务器调用servlet的destroy()方法
    展开全文
  • springBoot面试题

    千次阅读 2019-10-08 00:53:34
    9、SpringBoot 实现热部署有哪几种方式? 10、你如何理解 Spring Boot 配置加载顺序? 11、Spring Boot 如何定义多套不同环境配置? 12、Spring Boot 可以兼容老 Spring 项目吗,如何做? 13、Spring ...
  • SpringBoot 面试题

    2020-10-22 23:39:29
    什么是springboot ? 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 自动配置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,889
精华内容 10,355
关键字:

springboot面试题

spring 订阅