当前位置: 首页 > news >正文

面试题--SpringBoot

SpringBoot

SpringBoot 是什么(了解)

是 Spring 的子项目,主要简化 Spring 开发难度,去掉了繁重配置,提供各种启动器,可以 让程序员很快上手,节省开发时间.

 SpringBoot 的优点(必会)

SpringBoot 对上述 Spring 的缺点进行的改善和优化,基于约定优于配置的思想,可 以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码 编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。 版本锁定:解决是 maven 依赖版本容易冲突的问题,集合了常用的并且测试过的所有版本 使用了 Starter(启动器)管理依赖并能对版本进行集中控制,如下的父工程带有版本号, 就是对版本进行了集中控制. org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE 起步依赖 :解决了完成某一个功能要整合的 jar 包过多的问题,集合了常用的 jar 包 自动配置:解决了整合框架或者技术的配置文件过多,集合了所有的约定的默认配置 内置 Tomcat:通过内置的 tomcat,无需再用其他外置的 Tomcat 就直接可以运行 javaEE 程序 总之:人们把 Spring Boot 称为搭建程序的脚手架。其最主要作用就是帮我们快速的构建 庞大的 spring 项目,并且尽可能的减少一切 xml 配置,做到开箱即用,迅速上手,让我们 关注与业务而非配置。

运行 SpringBoot 项目的方式(必会)

 可以打包  可以使用 Maven 插件直接运行.  直接运行 main 方法.

SpringBoot 的启动器 starter(必会)

(1)什么是 starter? 

starter 启动器,可以通过启动器集成其他的技术,比如说: web, mybatis, redis 等等.可 以提供对应技术的开发和运行环境. 比如: pom 中引入 spring-boot-starter-web, 就可以进行 web 开发.

(2)starter 执行原理?

 SpringBoot 在启动时候会去扫描 jar 包中的一个名为 spring.factories.  根据文件中的配置,去加载自动配置类. 配置文件格式是 key=value, value 中配置了很 多需要 Spring 加载的类.  Spring 会去加载这些自动配置类, Spring 读取后,就会创建这些类的对象,放到 Spring 容器中.后期就会从 Spring 容器中获取这些类对象. (3)SpringBoot 中常用的启动器  spring-boot-starter-web, 提供 web 技术支持  spring-boot-starter-test  spring-boot-starter-jdbc  spring-boot-starter-jpa  spring-boot-starter-redis…等等

SpringBoot 运行原理剖析(必会)

 SpringApplication 类作用及 run()方法作用  SpringApplication 这个类整合了其他框架的启动类, 只要运行这一个类,所有的整合 就都完成了.  调 用 run 函 数 , 将 当 前 启 动 类 的 字 节 码 传 入 ( 主 要 目 的 是 传 入 @SpringBootApplication 这个注解), 以及 main 函数的 args 参数.  通过获取当前启动类的核心信息, 创建 IOC 容器.

写在最后:SpringBoot是常用的后端框架,面试也是考察重点。笔者小,中,大厂均有面试经历,每日分享Java全栈知识,希望能够和大家共同进步。

http://www.lryc.cn/news/389043.html

相关文章:

  • Stable Diffusion中放大图像的3种方法
  • 生产者消费模式
  • PyMuPDF 操作手册 - 06 PDF的转换等
  • VUE3解决跨域问题
  • 2024阿里云大模型自定义插件(如何调用自定义接口)
  • 生成式人工智能将如何改变网络可访问性
  • 科普文:一文搞懂jvm实战(二)Cleaner回收jvm资源
  • 使用PyTorch高效读取二进制数据集进行训练
  • 应急响应:应急响应流程,常见应急事件及处置思路
  • Kotlin/Android中执行HTTP请求
  • 哈希表(C++实现)
  • 深入理解代理模式(Proxy Pattern)及其实际应用
  • Elasticsearch (1):ES基本概念和原理简单介绍
  • 【Python爬虫】Python爬取喜马拉雅,爬虫教程!
  • 基于Jmeter的分布式压测环境搭建及简单压测实践
  • IDEA常用代码模板
  • 基于大语言模型的多意图增强搜索
  • 【ai】ubuntu18.04 找不到 nvcc --version问题
  • 深入了解DDoS攻击及其防护措施
  • 【面试系列】产品经理高频面试题及详细解答
  • 前端特殊字符数据,后端接收产生错乱,前后端都需要处理
  • 力扣热100 哈希
  • [图解]SysML和EA建模住宅安全系统-05-参数图
  • JavaScript——对象的创建
  • 大二暑假 + 大三上
  • C语言使用先序遍历创建二叉树
  • 如何在服务器中安装anaconda
  • 夸克网盘拉新暑期大涨价!官方授权渠道流程揭秘
  • 机器学习(三)
  • PostgreSQL 基本SQL语法(二)