Spring Boot 是 Spring 下的子项目,1.0版本发布于2014年1月,用于快速、敏捷的开发基于 Spring 的应用程序。通过自动配置省去了以往 Spring 开发中的 Java 配置和 XML 配置,使得开发人员可以更专注于应用程序的功能开发;通过起步依赖,根据 Maven 和 Gradle 提供的依赖传递特性,将依赖库引入到项目中,使得开发人员不用考虑各依赖库及各之间的版本冲突;通过嵌入式 Servlet 容器,例如 Tomcat, Jetty, Undertow,使得开发和测试更加方便;提供了命令行接口,简化应用程序的运行,打包和测试等;方便与 Spring 生态圈各种技术集成。

Spring Boot 特性开启

一般创建的 Spring Boot 项目的 pom 文件中,都会有如下配置,通过继承 spring-boot-starter-parent 项目开启了 Spring  Boot特性。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.9.RELEASE</version><relativePath/> <!-- lookup parent from repository -->
</parent>

Spring Boot 自动配置原理

核心就是 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 注解,

@EnableAutoConfiguration 从classpath下搜索所有的META-INF/spring.factories配置文件,将key为org.springframework.boot.autoconfigure.EnableAutoConfiguration 对应的配置类加载到 Spring 容器中,例如 Spring Boot 中关于Mybatis Plus 的 start jar包中的 spring.factories配置文件为:

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration

Spring Boot 核心注解

@ApplicationBootApplication

Spring Boot 核心配置文件

bootstrap 和 application配置文件,前者优于后者加载,前者用于 Spring Cloud Config 配置中心连接信息,加解密信息等;

后者添加的属性用于自动化配置,例如MySQL等数据库,Redis缓存数据库的连接信息,Mybatis配置信息等。

Spring Boot 配置文件格式

支持.properties和.yml格式,除了写法不同外,.yml不支持@PropertySource注解导入。

Spring Boot 按照 properties, yaml,系统环境变量,命令行参数的顺序加载配置文件。

Spring Boot 读取配置文件

@Value 读取配置文件中的单个属性

@ConfigurationProperties 读取一组属性,主要用于属性个数比较多的情况,比 @Value 方式更简洁

@ImportResource 注解读取 XML 格式配置文件

Spring Boot 热部署

在pom文件中添加如下依赖,使得开发过程中不需要重启服务器,就可以重新加载代码更新,提高开发效率,

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId>
</dependency>

Spring Boot 定时任务

使用 Spring 的@EnableScheduled注解;或者使用 Quartz 框架定义 Job 和 Trigger。

Spring Boot 日志框架

支持 Logback, Log4j2, Java Util Logging, 默认为Logback

Spring Boot 版本

Spring Boot 2.0 于 2018年3月发布,与 Spring Boot 1.0 相比,具有以下特性:

基于 Java 8 和 Spring 5;

支持响应式编程方式;

支持嵌入式 Netty;

对 Tomcat,Jetty,Undertow 提供 HTTP/2 的支持;

全新的 Actuator,支持 Spring MVC, WebFlux,和 Jersey;

支持 Quartz 定时任务框架;

支持响应式 Spring Data;

简化 Spring Security 的自动配置。

Spring Boot 特性相关推荐

  1. Spring Boot特性

    2019独角兽企业重金招聘Python工程师标准>>> SpringApplication SpringApplication类提供了一种从main()方法启动Spring应用的便捷 ...

  2. [转] Spring Boot特性

    [From] http://blog.javachen.com/2015/03/13/some-spring-boot-features.html 1. SpringApplication Sprin ...

  3. SpringBoot 2.1.5(12)--- Spring Boot 特性上

    SpringApplication类提供了一种方便的方法来引导Spring应用程序,从main()方法开始.在许多情况下,可以委托给静态 springApplication.run方法,如下例所示: ...

  4. Spring Boot 特性 —— SpringApplication

    转自:https://blog.csdn.net/cqdz_dj/article/details/52910317 转载于:https://www.cnblogs.com/sharpest/p/870 ...

  5. Spring Boot简介,四大核心,特性

    版权声明:本文为博主原创文章,未经博主允许不得转载 一.Spring Boot简介 1.Spring boot是Spring家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程,也可 ...

  6. Spring Boot 核心知识点总结,面试再也不怕了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 作者:lizmit https://blog.csdn.net/qq_35216516 Spring Boot 核心功能 1.独立运 ...

  7. security面试_精选41 道 Spring Boot 面试题,附答案!

    今天跟大家分享下SpringBoot 常见面试题的知识. 1 什么是springboot ? 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件 ...

  8. 一. 对spring boot认识

    Spring Boot是一个应用程序框架,根据其网站,可以轻松创建独立的,生产级的基于Spring的应用程序,您可以"运行".它需要对Spring平台和第三方库的看法,所以你可以开 ...

  9. 合理利用延迟初始化优化 Spring Boot

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 随着我们项目 ...

最新文章

  1. 安装RADOS gateway(CEPH对象存储)
  2. 2021年,自动驾驶将我们带到何处去?
  3. Jenkins+Github持续集成
  4. php csrf攻击 xss区别,用大白话谈谈XSS与CSRF
  5. java后台开发实习--第一次面试
  6. oracle10 监听日志,windows 清空oracle的监听日志listener.log
  7. python多线程协程配合使用_多线程配合协程
  8. UI设计干货素材|动效导航,漂亮的悬停动效
  9. 输出毫秒_使用AMETEK直流电源实现波形变化的输出
  10. win7开启telnet工具
  11. DisplayTag详解
  12. 巨头们的盈利之道:药店的这个营销方法,其他行业也适用!
  13. 1 Apache启动失败,请检查相关配置 √MySQL5 1已启动 解决方案
  14. DTL常用过滤器详解
  15. AR手游《悠梦2》再获苹果推荐,下载《网易洞见》可免费试玩
  16. 如何查看微信image/*.dat文件
  17. 2022-2028年全球与中国印刷电路板材料行业产销需求与投资预测分析
  18. 海创软件组-202006014-vim编辑器
  19. HADOOP安装指南-Ubuntu15.10和hadoop2.7.2
  20. iPhone X 响应式网页设计

热门文章

  1. 【英语学习】【Daily English】U06 Shopping L03 What sort of market are you looking for?
  2. 【英语学习】【Daily English】U05 Places L03 I'd like to open an account
  3. 【英语学习】【WOTD】substantive 释义/词源/示例
  4. Intel Core Enhanced Core架构/微架构/流水线 (15) - 先进智能缓存
  5. 让服务程序进入demon模式的代码
  6. QA专题阅读小组 | 每周一起读 #09
  7. Spring与Quartz集成详解
  8. Onboard,迷人的引导页样式制作库
  9. 理解 JavaScript 闭包{转载}
  10. 去除html标签的工具类,Java正则匹配过滤移除html标签以及获取img完整标签工具类...