Spring Boot是在Spring框架基础上发展起来的,是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能够快速上手
Spring Boot = Auto-Dependency Resolution + Auto-Configuration + Management Endpoints + Embedded HTTP Servers(Tomcat, Jetty)
背景
Spring Boot官方地址:https://spring.io/projects/spring-boot
Spring Boot源码地址:https://github.com/spring-projects/spring-boot
中文Spring Boot文档地址:https://www.springcloud.cc/spring-boot.html
Spring两大利器:IOC和AOP
- IOC:管理对象的依赖关系,极大减少对象的耦合性
- AOP:即切面编程,使用动态代理来实现各种动态方法的功能(如事务、缓存、日志等)
集成Spring框架,需用到大量的XML配置文件或者注解式的Java代码配置,XML或者注解都需要对相关组件的配置足够了解,然后再编写大量冗长的配置代码,了解这些配置的成本太高,基于简化Spring快速上手的目的,Spring Boot框架应运而生。
Spring Boot提供了各种组件的启动器(starters),开发者只需要简单配置对应组件的参数,Spring Boot就会自动配置,让开发者快速搭建依赖于Spring组件的Java项目
Spring Boot不但能创建传统的war包应用,还能创建独立的不依赖于任何外部容器(如Tomcat)的独立应用,使用Java -Jar命令就能启动,同时Spring Boot也提供了一个命令行工具来执行Spring的脚本
Spring Boot优点:
- 开箱即用,提供各种默认配置来简化项目配置,使Spring开发者门槛更低
- 提供一系列经常用到的公共的非功能特性,如内嵌服务器、安全、度量指标、健康检测、外部化配置
- 零代码配置生成、零XML配置
Spring Boot特性
- 独立运行,内嵌了多种Servlet容器(Tomcat、Jetty等),无需打包成war包并部署到容器中,只需打成一个可执行的jar包就能独立运行
- 简化Maven配置,开发Spring web应用只依赖spring-boot-starter-web启动器包,它将包括所有web开发所需要的依赖
- 自动配置,Spring Boot能根据当前类路径下的类或者jar包里面的类来自动配置Spring Bean
- 无代码生成和XML配置,配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这都是借助条件注解完成的,这也是Spring 4+的核心功能之一
- 应用监控,提供一系列断点可以监控服务及应用,能对Spring应用做健康检测
Spring Boot 缺点
- 所有东西都集成了且自动配置化,需要了解Spring Boot的核心技术原理,才能定位一些棘手问题
- 从Spring项目迁移到Spring Boot框架,需要考虑XML配置文件的可用性,以及JVM配置
xml还是注解
大家形成了一个不成文的共识,对于业务类使用注解,例如,对于MVC开发,控制器使用@Controller,业务层使用@Service,持久层使用@Repository;而对于一些公用的Bean,例如,对于数据库(如Redis)、第三方资源等则使用XML进行配置
网友评论