Spring boot有很多优点,我们在谈它的特性时一定是跟Spring的比较,下面先谈谈已经作为Java开发框架事实标准的Spring。
Spring诞生时是Java企业版的轻量级的替代品,无需开发重量级的EJB,Spring为企业级Java开发提供了一种相对简单的方法。通过依赖注入和面向切面编程,用简单的Java对象(POJO) 实现了EJB的功能。
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的,一开始,Spring 用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身的显示XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以替代XML。
尽管如何,还是没能逃脱配置的魔爪,开启某些Spring特性的时候,比如事务管理和Spring MVC,还是需要XML或Java进行显示配置。启用第三方库时也需要显示配置,比如基于Thymeleaf的Web视图。配置servlet和过滤器,同样需要在web.xml或servlet初始化代码里进行显示配置。
所有这些配置都代表了开发时的损耗,因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以写配置占用了大量时间。
不过,在Spring Boot出现之后,这一切成为了过去。
Spring Boot继承了Spring的优点,并新增了一些新功能和特性:
(1)SpringBoot是伴随着Spring4.0诞生的,一经推出,引起了巨大的反向;
(2)从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架;
(3)SpringBoot帮助开发者快速启动一个Web容器;
(4)SpringBoot继承了原有Spring框架的优秀基因;
(5)SpringBoot简化了使用Spring的过程;
(6)Spring Boot为我们带来了脚本语言开发的效率,但是Spring Boot并没有让我们意外的新技术,都是Java EE开发者常见的额技术。
Spring Boot主要特性
(1)遵循“约定优于配置”的原则,使用Spring Boot只需要很少的配置,大部分的时候我们直接使用默认的配置即可;
(2)项目快速搭建,可以无需配置的自动整合第三方的框架;
(3)可以完全不使用XML配置文件,只需要自动配置和Java Config;
(4)内嵌Servlet容器,降低了对环境的要求,可以使用命令直接执行项目,应用可用jar包执行:java -jar;
(5)提供了starter POM, 能够非常方便的进行包管理, 很大程度上减少了jar hell或者dependency hell;
(6)运行中应用状态的监控;
(7)对主流开发框架的无配置集成;
(8)与云计算的天然继承;
Spring Boot的核心功能
(1)独立运行的Spring项目
Spring Boot可以以jar包的形式进行独立的运行,使用:java -jar xx.jar
就可以成功的运行项目,或者在应用项目的主程序中运行main函数即可;
(2)内嵌的Servlet容器
内嵌容器,使得我们可以执行运行项目的主程序main函数,是想项目的快速运行;
(3)提供starter简化Manen配置
Spring Boot提供了一系列的starter pom用来简化我们的Maven依赖,下边是创建一个web项目中自动包含的依赖,使用的starter pom以来为:spring-boot-starter-web
(4)自动配置Spring
Spring Boot会根据我们项目中类路径的jar包/类,为jar包的类进行自动配置Bean,这样一来就大大的简化了我们的配置。当然,这只是Spring考虑到的大多数的使用场景,在一些特殊情况,我们还需要自定义自动配置;
(5)应用监控
Spring Boot提供了基于http、ssh、telnet对运行时的项目进行监控
关于如何快速搭建Spring Boot项目,请参考我的另一个博客
http://blog.youkuaiyun.com/soldier_123/article/details/78966185
Spring Boot解决的问题
(1) Spring Boot使编码变简单
(2) Spring Boot使配置变简单
(3) Spring Boot使部署变简单
(4) Spring Boot使监控变简单