首页 > 其他分享 >Springboot面试题+个人理解

Springboot面试题+个人理解

时间:2024-12-19 15:59:07浏览次数:11  
标签:WEB 面试题 依赖 Springboot Spring 配置 application 理解

应该有相当一部分程序员是通过Springboot接触WEB开发的,但实际上他已经是一个进化到比较后期的框架了。WEB的大部分的功能都不是由Springboot实现的,它只做了一些简化开发的工作。
对于倒着学框架的感受其实不怎么好,大部分时间都得保持一个“学了再说,会用就行”的态度,一旦你想知道他为什么能这么做,会学的非常痛苦。无奈Java就是一个面向框架编程的语言。
前置知识:基于Servlet的WEB开发、Maven框架、Spring框架、SpringMVC框架

1.什么是Springboot

Springboot是一个简化Spring开发过程的框架。简化了什么呢?简化了Spring开发的配置过程和开发复杂性。
以往的Spring开发,需要自己引入依赖jar包,多个jar包之间经常发生依赖冲突,相信调过Maven依赖冲突的人都懂这有多恶心。Springboot帮你归纳整理好了常见技术栈的所有兼容依赖,并打上版本号。你只需要根据Springboot的版本选择合适的技术就行,无需关心其他。这就是起步依赖
Spring引入依赖之后,还需要手动的将这些包里的核心Bean注册到IOC容器中,造成大量重复劳动,Springboot也帮你把这个配Bean的过程简化掉了。这叫自动配置
在引入Bean时往往需要程序员填写大量的配置信息。Springboot秉承着约定大于配置的想法,在自动装配时设置了默认值,这样即使是小白也能开箱即用啦。这叫默认配置
Spring开发完后,往往需要将jar包放到对应的WEB容器中执行;调试过程也需要额外开启对应服务器的插件(比如你用SpringMVC做开发,调试的时候是要在IDEA里装tomcat插件的)。Springboot通过内置服务器,进一步简化了开发。

1.Springboot的启动过程

  1. 启动main方法
  2. 创建SpringApplication对象
  3. 准备环境
  4. 创建并刷新应用上下文
  5. 启动嵌入式WEB服务器
  6. 发布应用已启动事件
  7. 执行CommandLineRunner和ApplicationRunner
  8. 发布ready事件

2.Springboot核心特性

  1. 自动配置:Springboot会自动扫描依赖的jar包,并将他们的Bean加载到容器里
  2. 内置WEB服务:Springboot内置了WEB服务器,默认为Tomcat
  3. 起步依赖:Springboot提供了各种技术的起步依赖(Starter),每个Starter包含一系列需要的依赖,且版本合适,程序员无需关心依赖之间的冲突问题,引入即用
  4. 支持jar包运行:由于内置了服务器无需将打好的jar包放到专门的服务容器中,直接运行jar包即可启动
  5. 生态丰富:可以整合各种Spring全家桶的技术,如Actuator健康检查、Spring Security安全模块、Spring Test单元测试

3.Springboot如何实现自动装配

核心注解@EnableAutoConfiguration,会从META-INFO下的spring.factories文件里读取需要加载的配置类,该配置类中包含了各种Bean的注册信息。

4.Spring支持的WEB容器

默认容器Tomcat,此外还支持:
jetty,一个比Tomcat更加轻量级的容器,主要用于嵌入式
Undertow,高性能容器,用于处理高并发
Netty,用于WebFlux,同样适用高并发

5.如何定义和读取配置文件属性

在配置文件application.yml或application.properties中定义相关的属性
在代码中使用注解来读取

  1. @Value(“${xx.xx}”),加在属性上读取单个配置值,用Spring的EL表达式指定具体加载哪个。所在类需要被Spring容器管理,且属性不能为static
  2. @ConfigurationProperties(prefix=“xx.xx”),加载配置类上,可以指定配置文件里某个前缀下的所有属性加载到该类的属性中,该类需要提供setter方法
  3. 使用Environment接口,在类中直接注入Environment对象,调用他的getProperty(“xxx”)

6.Springboot配置文件加载优先级

命令行>外部application-{profile}.properties配置文件>内部application-{profile}.properties>外部application.properties配置文件>内部application.properties配置文件
同级别下,application.properties优先级高于application.yml

7.如何理解Springboot中的Starter

一组有用依赖的集合,用于简化构建配置。开发者只要引用一个Starter,就可以引入所有的依赖和配置,无需手动添加

8.如何实现跨域请求

  1. 局部跨域配置,在控制器上添加@CrossOrigin()
  2. 全局跨域配置,同拦截器一样,在WebMvcConfigurer中实现addCorsMappings()方法

9.什么是Springboot的Actuator

是Springboot提供的一个监控和管理功能的工具,他可以实现健康状况监控、查看指标、跟踪请求、管理环境参数等功能

标签:WEB,面试题,依赖,Springboot,Spring,配置,application,理解
From: https://blog.csdn.net/weixin_45957747/article/details/144566157

相关文章

  • Redis API(springboot整合,已封装)
    目录结构maven导包pom.xmlapplication.ymlredis配置类编写Service方法调用示例结构maven导包pom.xml依赖项主要添加如下<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-re......
  • 在Android Studio中,通过设置腾讯镜像和代理解决无法下载gradle和gradle.plugin等组件
    诸神缄默不语-个人CSDN博文目录这个出现在刚打开项目的时候,下载一堆必要的组件……无法下载gradle的报错信息是:CouldnotinstallGradledistributionfrom'https://services.gradle.org/distributions/gradle-8.9-bin.zip'.Reason:java.net.SocketTimeoutException:......
  • 深入理解华为鸿蒙的 Context
    深入理解华为鸿蒙的Context一、引言在华为鸿蒙操作系统里,Context是极为关键的概念。它如同应用运行的信息中心,为应用提供环境信息、资源访问途径以及与系统交互的接口,对构建优质鸿蒙应用至关重要。二、Context的基本概念与作用(一)定义与核心功能Context代表应用运行的上下......
  • springboot毕设少儿体适能运动训练参赛管理系统程序+论文+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着少儿体适能运动的逐渐普及,参与训练和竞赛的少儿数量不断增加。目前,在少儿体适能运动领域,缺乏一个专门针对其训练参赛的全面管理系统。传统的......
  • 2024互联网1000多道Java常见面试题(附详细答案整理)
    相信进大厂是每个程序员最想做的事情吧?但是由于今年的大环境不好,好多厂裁员现象也层出不穷,尤其是腾讯、阿里、字节员工也不断爆出被裁的消息。而导致很多准备跳槽的小伙伴以为最近行情不好都不敢轻易跳槽,都在沿岸观望,想着等着行情好点再跳。事实并非如此。大厂裁员的原因很多......
  • 对希尔排序的理解——如何从插入排序进化到希尔排序?
    在学习希尔排序的过程中,发现很多博客只在讲希尔排序是什么,没有解释希尔排序是怎么设计的,为什么要使用增量。在开始前,我们要先强调一下,希尔排序的时间复杂度并不固定,它依赖于增量序列的选择。在最坏的情况下,希尔排序的时间复杂度为O(n^2),但是对于某些特定的增量序列,其时间复杂度可......
  • 手把手教你springboot中的密码加密
    1.引入SpringSecurity依赖首先,需要在pom.xml中添加SpringSecurity依赖,因为BCryptPasswordEncoder是SpringSecurity提供的类:<dependencies><!--SpringSecurity依赖--><dependency><groupId>org.springframework.boot</groupId>......
  • 基于SpringBoot+Vue实现的个人备忘录系统
    ......
  • Springboot家政服务信息管理系统的设计与实现xx5fl(程序+源码+数据库+调试部署+开发环
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,员工,服务项目,预约信息,订单信息,服务评价开题报告内容一、研究背景与意义随着现代社会的快速发展和生活节奏的加快,家政服务已成为许多家庭生活中不可或......
  • Springboot家政服务公司网站b8fk1(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,员工,公司简介,家庭保洁,保洁订单,月嫂信息,月嫂预约,同城搬家,搬家订单,家电卫士,维修订单,服务评价,人才招聘开题报告内容一、选题背景与意义随着城市化......