SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-Framework同属于Spring的产品。设计的目的是用来简化Spring应用的初始搭建以及开发过程。
最主要的作用就是让我们快速的构建庞大的Spring项目,尽可能的减少一切的Xml配置,做到开箱即用,迅速上手,让我们关注业务而非配置。
Spring Team在现有Spring框架的基础上发布了一个创新的主要框架:Spring Boot。这是一个来自Pivotal Team(Spring Team)的全新项目。Spring Boot是他们最新的创新,能够跟上不断变化的技术需求。开发Spring Boot的主要动机是简化配置和部署spring应用程序的过程。
Spring Boot为开发提供一个具有最小功能的Spring应用程序,并提供了一个新的范例。使用Spring Boot将能够以更灵活的方式开发Spring应用程序,并且能够通过最小(或可能没有)配置Spring来专注于解决应用程序的功能需求。它使用全新的开发模型,通过避免一些繁琐的开发步骤和样板代码和配置,使Java开发非常容易。
Spring Boot可以轻松创建单独的,生产级的基于Spring的应用程序,我们只管“运行”。查看Spring平台和第三方库。大多数Spring Boot应用程序只需要很少的Spring配置。
在没有学习SpringBoot之前有以下几点问题:
(1)复杂的配置:我们Spring工程中复杂的配置其实是开发时的损耗,写配置挤占了编写业务代码的时间 。
(2)混乱的依赖管理:在项目中添加很多依赖已经很麻烦了,还要知道那些库的哪些版本和其他库不会有冲突,一旦选错了以来的版本,随之而来的不兼容问题就会造成项目的致命伤害。
SpringBoot的解决方案:
SpringBoot简化了Spring的应用开发,只需要“run”就可以创建一个独立的、生产级别的Spring应用,SpringBoot为Spring平台及第三方库提供了开箱即用的设置。
1.创建独立的Spring应用程序2.直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)3.提供“初始”的POM文件内容,以简化Maven配置4.尽可能时自动配置Spring5.提供生产就绪的功能,如指标,健康检查和外部化配置6.绝对无代码生成,也不需要XML配置。
Spring Boot不是编写应用程序的框架,它可以帮助我们以最少的配置或零配置开发和构建,打包和部署应用程序。它不是应用程序服务器。但是它是提供应用程序服务器功能的嵌入式servlet容器,而不是Spring Boot本身。类似地,Spring Boot不实现任何企业Java规范,例如JPA或JMS。例如,Spring Boot不实现JPA,但它通过为JPA实现(例如Hibernate)自动配置适当的bean来支持JPA。最后,Spring Boot不使用任何形式的代码生成来完成它的功能。它是利用Spring 4的条件配置功能,以及Maven和Gradle提供的传递依赖关系解析,以在Spring应用程序上下文中自动配置bean。简而言之,Spring Boot它的核心就是Spring。
1.使用Java或Groovy开发基于Spring的应用程序非常容易。2.它减少了大量的开发时间并提高了生产力。3.它避免了编写大量的样板代码,注释和XML配置。4.Spring Boot应用程序与其Spring生态系统(如Spring JDBC,Spring ORM,Spring Data,Spring Security等)集成非常容易。5.它遵循“自用默认配置”方法,以减少开发工作量。6.它提供嵌入式HTTP服务器,如Tomcat,Jetty等,以开发和测试Web应用程序非常容易。7.它提供CLI(命令行界面)工具从命令提示符,非常容易和快速地开发和测试Spring Boot(Java或Groovy)应用程序。8.它提供了许多插件来开发和测试Spring启动应用程序非常容易使用构建工具,如Maven和Gradle。9.它提供了许多插件,以便与嵌入式和内存数据库工作非常容易。
将现有或传统的Spring Framework项目转换为Spring Boot应用程序是一个非常困难和耗时的过程。它仅适用于全新Spring项目。
未来的Spring项目不会有任何XML配置作为它的一部分,一切都将由项目Spring Boot处理。