Spring Boot 特性
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 特性相关推荐
- Spring Boot特性
2019独角兽企业重金招聘Python工程师标准>>> SpringApplication SpringApplication类提供了一种从main()方法启动Spring应用的便捷 ...
- [转] Spring Boot特性
[From] http://blog.javachen.com/2015/03/13/some-spring-boot-features.html 1. SpringApplication Sprin ...
- SpringBoot 2.1.5(12)--- Spring Boot 特性上
SpringApplication类提供了一种方便的方法来引导Spring应用程序,从main()方法开始.在许多情况下,可以委托给静态 springApplication.run方法,如下例所示: ...
- Spring Boot 特性 —— SpringApplication
转自:https://blog.csdn.net/cqdz_dj/article/details/52910317 转载于:https://www.cnblogs.com/sharpest/p/870 ...
- Spring Boot简介,四大核心,特性
版权声明:本文为博主原创文章,未经博主允许不得转载 一.Spring Boot简介 1.Spring boot是Spring家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程,也可 ...
- Spring Boot 核心知识点总结,面试再也不怕了!
欢迎关注方志朋的博客,回复"666"获面试宝典 作者:lizmit https://blog.csdn.net/qq_35216516 Spring Boot 核心功能 1.独立运 ...
- security面试_精选41 道 Spring Boot 面试题,附答案!
今天跟大家分享下SpringBoot 常见面试题的知识. 1 什么是springboot ? 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件 ...
- 一. 对spring boot认识
Spring Boot是一个应用程序框架,根据其网站,可以轻松创建独立的,生产级的基于Spring的应用程序,您可以"运行".它需要对Spring平台和第三方库的看法,所以你可以开 ...
- 合理利用延迟初始化优化 Spring Boot
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 随着我们项目 ...
最新文章
- 安装RADOS gateway(CEPH对象存储)
- 2021年,自动驾驶将我们带到何处去?
- Jenkins+Github持续集成
- php csrf攻击 xss区别,用大白话谈谈XSS与CSRF
- java后台开发实习--第一次面试
- oracle10 监听日志,windows 清空oracle的监听日志listener.log
- python多线程协程配合使用_多线程配合协程
- UI设计干货素材|动效导航,漂亮的悬停动效
- 输出毫秒_使用AMETEK直流电源实现波形变化的输出
- win7开启telnet工具
- DisplayTag详解
- 巨头们的盈利之道:药店的这个营销方法,其他行业也适用!
- 1 Apache启动失败,请检查相关配置 √MySQL5 1已启动 解决方案
- DTL常用过滤器详解
- AR手游《悠梦2》再获苹果推荐,下载《网易洞见》可免费试玩
- 如何查看微信image/*.dat文件
- 2022-2028年全球与中国印刷电路板材料行业产销需求与投资预测分析
- 海创软件组-202006014-vim编辑器
- HADOOP安装指南-Ubuntu15.10和hadoop2.7.2
- iPhone X 响应式网页设计
热门文章
- 【英语学习】【Daily English】U06 Shopping L03 What sort of market are you looking for?
- 【英语学习】【Daily English】U05 Places L03 I'd like to open an account
- 【英语学习】【WOTD】substantive 释义/词源/示例
- Intel Core Enhanced Core架构/微架构/流水线 (15) - 先进智能缓存
- 让服务程序进入demon模式的代码
- QA专题阅读小组 | 每周一起读 #09
- Spring与Quartz集成详解
- Onboard,迷人的引导页样式制作库
- 理解 JavaScript 闭包{转载}
- 去除html标签的工具类,Java正则匹配过滤移除html标签以及获取img完整标签工具类...