• Spring Boot面试系列-01


    1. 什么是 Spring Boot 框架?

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

    Spring Boot框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

    2014年4月发布第一个版本的全新开源的Spring Boot轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。

    另外Spring Boot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

    2. Spring Boot 框架的优缺点?

    Spring Boot优点

    1)创建独立的Spring应用程序

    Spring Boot以jar包的形式独立运行,使用java -jar xx.jar命令运行项目或在项目的主程序中运行main方法。

    2)Spring Boot内嵌入Tomcat,Jetty或者Undertow,无序部署WAR包文件

    Spring项目部署时需要在服务器上部署tomcat,然后把项目打成war包放到tomcat中webapps目录。

    Spring Boot项目不需要单独下载Tomcat等传统服务器,内嵌容器,使得可以执行运行项目的主程序main函数,让项目快速运行,另外,也降低对运行环境的基本要求,环境变量中有JDK即可。

    3)Spring Boot允许通过maven工具根据需要获取starter

    Spring Boot提供了一系列的starter pom用来简化我们的Maven依赖,通过这些starter项目就能以Java Application的形式运行Spring Boot项目,而无需其他服务器配置。

    starter pom:

    Spring Boot Reference Guide

    4)Spring Boot尽可能自动配置Spring框架

    Spring Boot提供Spring框架的最大自动化配置,使用大量自动配置,使得开发者对Spring的配置减少。

    Spring Boot更多的是采用Java Config的方式,对Spring进行配置。

    5)提供生产就绪型功能,如指标、健康检查和外部配置

    Spring Boot提供了基于http、ssh、telnet对运行时的项目进行监控;可以引入spring-boot-start-actuator依赖,直接使用REST方式来获取进程的运行期性能参数,从而达到监控的目的,比较方便。

    但是Spring Boot只是微框架,没有提供相应的服务发现与注册的配套功能、监控集成方案以及安全管理方案,因此在微服务架构中,还需要Spring Cloud来配合一起使用,可关注微信公众号“Java精选”,后续篇幅会针对Spring Cloud面试题补充说明。

    5)绝对没有代码生成,对XML没有要求配置

    Spring Boot缺点

    1)依赖包太多,一个spring Boot项目就需要很多Maven引入所需的jar包

    2)缺少服务的注册和发现等解决方案

    3)缺少监控集成、安全管理方案

    3. Spring Boot 核心注解都有哪些?

    1)@SpringBootApplication*

    用于Spring主类上最最最核心的注解,自动化配置文件,表示这是一个SpringBoot项目,用于开启SpringBoot的各项能力。

    相当于@SpringBootConfigryation、@EnableAutoConfiguration、@ComponentScan三个注解的组合。

    2)@EnableAutoConfiguration

    允许SpringBoot自动配置注解,开启这个注解之后,SpringBoot就能根据当前类路径下的包或者类来配置Spring Bean。

    如当前路径下有MyBatis这个Jar包,MyBatisAutoConfiguration 注解就能根据相关参数来配置Mybatis的各个Spring Bean。

    3)@Configuration

    Spring 3.0添加的一个注解,用来代替applicationContext.xml配置文件,所有这个配置文件里面能做到的事情都可以通过这个注解所在的类来进行注册。

    4)@SpringBootConfiguration

    @Configuration注解的变体,只是用来修饰Spring Boot的配置而已。

    5)@ComponentScan

    Spring 3.1添加的一个注解,用来代替配置文件中的component-scan配置,开启组件扫描,自动扫描包路径下的@Component注解进行注册bean实例放到context(容器)中。

    6)@Conditional

  • 相关阅读:
    硬核!8个类手写一个配置中心!
    oracle高级—索引
    JAVA集合
    onnxruntime C++推理
    QQ plot 的解读
    SwiftUI 原生或利用 Vision 检测限定高度的 Text 视图能否完整显示文本的方法
    火灾隐患是查不完的,消防监管要着力于提升单位消防能力
    老风控的心声:风控的“痛”与“恨”|内卷当下,单做好风控已远远不够
    产品速递 | 璞华易投估值管理系统,灵活多样的数据模型让估值更加精准高效!
    探索ChatGPT的前沿科技:解锁其在地理信息系统、气候预测、农作物生长等关键领域的创新应用
  • 原文地址:https://blog.csdn.net/qq_61863348/article/details/136565167