SpringBoot理解
SpringBoot产生背景?
J2EE笨重的开发、繁重的配置、低下的开发效率、负责的部署流程、第三方技术集成难度大等等,一直以来,Spring IO平台饱受非议的最大一点就是大量的XML配置以及复杂的依赖管理。以致于2012 年 10 月,Mike Youngstrom 在 Spring jira 中创建了一个功能请求,要求在 Spring 框架中支持无容器 Web 应用程序体系结构。他谈到了在主容器引导 spring 容器内配置 Web 容器服务。这是 jira 请求的摘录:
地址:https://jira.spring.io/browse/SPR-9888
原文:"I think that Spring’s web application architecture can be significantly simplified if it were toprovided tools and a reference architecture that leveraged the Spring component and configurationmodel from top to bottom. Embedding and unifying the configuration of those common webcontainer services within a Spring Container bootstrapped from a simple main() method."
译文:我认为 Spring 的 Web 应用体系结构可以大大简化,如果它提供了从上到下利用 Spring 组件和配置模型的工具和参考体系结构。在简单的 main()方法引导的 Spring 容器内嵌入和统一这些常用Web 容器服务的配置。
在2013年的SpringOne 2GX会议上,Pivotal的CTO Adrian Colyer回应了这些批评,并且特别提到该平台将来的目标之一就是实现免XML配置的开发体验。相对于来说Mike Youngstrom 在 Spring jira 中的这一要求促使了 2013年初开始的 Spring Boot 项目的研发。2014 年 4 月,Spring Boot 1.0.0 发布。Boot所实现的功能超出了这个任务的描述,开发人员不仅不再需要编写XML,而且在一些场景中甚至不需要编写繁琐的import语句。在对外公开的beta版本刚刚发布之时,Boot描述了如何使用该框架在140个字符内实现可运行的web应用,从而获得了极大的关注度,该样例发表在twitter上。
SpringBoot历史?
2013年初开始的Spring Boot项目的开发。2014年4月,Spring Boot 1.0.0发布。从那以后,一些Spring Boot小版本开始出现。
Spring Boot 1.1(2014年6月):改进的模板支持,gemfire支持,elasticsearch和apache solr的自动配置。
Spring boot 1.2(2015年3月):升级到servlet 3.1/tomcat 8/jetty 9和spring 4.1,支持banner/jms/SpringBoot Application注释。
Spring boot 1.3(2016年12月):升级到spring4.2,新的spring-boot-devtools,缓存技术的自动配置(ehcache,hazelcast,redis,guava和infinispan)以及完全可执行的jar支持。
Spring boot 1.4(2017年1月):升级到spring 4.3,couchbase/neo4j支持,启动失败分析和RestTemplateBuilder。
Spring boot 1.5(2017年2月):支持kafka /ldap,第三方库升级,放弃对CRaSH支持和执行器日志终端用以动态修改应用程序日志级别。
Spring boot的简便性使java开发人员能够快速大规模地应用于项目。 Spring boot可以说是Java中开发基于RESTful微服务Web应用的最快方法之一。它也非常适合docker容器部署和快速原型设计。
SpringBoot是什么?
官方定义
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
翻译理解
Spring Boot 的目的是提供一组工具,以便快速构建容易配置的 Spring 应用程序。Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot就是简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用!
举例验证
其实就是简单、快速、方便!平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?
1)配置web.xml,加载spring和spring mvc
2)配置数据库连接、配置spring事务
3)配置加载配置文件的读取,开启注解
4)配置日志文件...配置完成之后部署tomcat 调试...
现在非常流行微服务,如果我这个项目仅仅只是需要发送一个邮件,或者,如果我的项目仅仅是生产一个积分;我都需要这样折腾一遍!但是使用SpringBoot就不用这样了,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!
SpringBoot特点?
摘录官网:https://spring.io/projects/spring-boot#overview
● Create stand-alone Spring applications
● Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
● Provide opinionated 'starter' dependencies to simplify your build configurationAutomatically
● configure Spring and 3rd party libraries whenever possible
● Provide production-ready features such as metrics, health checks and externalized configuration
● Absolutely no code generation and no requirement for XML configuration
理解翻译:
● 创建独立的Spring应用程序
● 嵌入的Tomcat、Jetty ,无需部署WAR文件
● 提供‘starter’的依赖,简化Maven配置
● 自动配置Spring和第三方的lib
● 提供生产就绪型功能,如指标,健康检查和外部配置
● 绝对没有代码生成并且对XML也没有配置要求