本文主要通过:什么是Spring boot、Spring boot是怎样实现的、为什么能实现Spring boot这三个方面整理而成。
一、思维导图
二、什么是Spring boot
官网上介绍到:Spring boot可以轻松创建独立的、生产级的基于Spring的应用程序,您可以“直接运行”这个程序。那它到底是个啥呢,是为Spring整个了很多第三方技术的新框架。
1、研发团队:Pivotal 公司
一个“富二代”,它是由几个不差钱的世界500强公司联合组建的,其开发团队汇集了全球一流的开发者。很多我们所熟知的技术都来源于他们团队,包括:redis、tomcat、Spring及其衍生产品、消息中间件 RabbitMQ等。Spring boot正是该团队在2013年初开始研究,并于2014年4月发布了第一版,2016年在中国迅速崛起,直至现在,Spring boot几乎成为Java语言搭建项目的必选框架之一。
2、名字由来
首先需要明确研究Spring boot的目的:通过简化配置来进一步的简化了Spring应用的整个搭建和开发过程。boot有启动的意思,所以我理解的就是启动Spring的框架。
3、诞生背景
随着企业项目越来越大,配置越来越多,Java语言开始被开发人员诟病,项目的开发复杂度太高、维护困难、使用了大量框架但是开发也没减少多些、所有人都认为Spring已经发展到极限,不会在前进了、在云时代下如何实现快速部署和搭建项目等。这些话题被越来越多的开发人员探讨。在这样的背景之下,Spring boot诞生了,他奉行的宗旨就是废除掉所有复杂的开发,废除掉所有的配置文件,让开发变得更简单纯粹,而Spring boot也做到了他的核心:“零配置”。
三、怎么实现Spring boot
1、Spring boot带来了哪些变化:
帮助开发者快速启动一个web项目,继承了原有Spring框架的优秀基因,简化了使用Spring的过程。
2、Spring boot的主要特性
遵循“习惯优于配置”原则,使用Spring boot只需要很少的配置,大部门的时候直接使用默认的配置即可。
项目快速搭建,可以无须配置的自动整合第三方框架。
可以完全不使用XML配置文件,只需要自动配置和Java Config。
内嵌servlet容器,降低了对环境的要求,可以使用命令直接执行项目。
提供了starter POM,能够非常方便的进行包管理。
运行中应用状态的监控。
对主流开发框架的无配置集成。
与云计算的天然集成。
3、解决了哪些问题
1)使配置简单
Spring boot的核心思想是“约定优于配置”,也可以称作按约定编程,是一种软件设计范式,旨在减少开发人员需做决定的数量,获得简单的好处而又不失灵活性。从本质上说,开发人员仅需规定应用中不符约定的部分。Spring boot特定集成starter中已经帮我们做了很多配置,默认配置已经满足我们大部分情况的使用。
2)使编码简单
在没有使用Springboot之前搭建一个web项目需要:配置web.xml,加载Spring和springMVC、配置数据库连接,配置Spring事务、配置加载文件的芙蕖,开启注解、配置日志文件等等,所有的配置完成之后还需要部署tomcat测试,嗨哟可能需要考虑各个版本的兼容性,jar包冲突的各种可能性等问题。
使用Spring boot之后搭建一个项目只需要:去http://start.spring.io/选择对应的组件直接下载、导入项目,直接开发。可以快速搭建一个脚手架。
单单从两者技术搭建项目的步骤说明就可以看出来Spring boot的优势了。
3)使部署简单
部署最明显的优势就是Spring boot的内嵌容器了,它不仅让部署变得简单,在开发调试阶段也会带来非常大的便利性,使用Spring boot开发web项目不需要关注容器的环境问题,可以安心写代码。
4)使监控简单
Spring boot是一款自带监控的开源软件,他专门提供了一个监控组件来完成这个工作,这个组件就是 Spring Boot Actuator。
四、为什么能实现Spring boot
Spring boot为什么能实现这么多优点呢?主要是因为他的核心功能很强大。
1)独立运行Spring项目
Springboot可以以jar包的形式进行独立运行,使用java -jar xx.jar就可以成功的运行项目,也可以在应用项目的主程序中运行main函数。
2)内嵌servlet容器
内嵌容器,使得我们可以运行项目的主程序main函数,实现项目的快速运行。
3)提供starter简化maven配置
Spring Boot提供了一系列的starter pom用来简化我们的Maven依赖。Spring boot官网提供了很多starter pom,请参考:http://docs.spring.io/spring-boot/docs/1.4.1.RELEASE/reference/htmlsingle/#using-boot-starter
4)自动配置Spring
Spring boot会根据我们项目中雷枯井的jar包/类,为jar包的类进行自动配置bean,这就大大的简化了我们的配置。当然,在一些特殊情况下,还是需要开发人员自定义配置的。
5)应用监控
Spring boot提供了基于http、ssh、telnet对运行时的项目进行监控。
6)无代码生成和XML配置
Spring boot是通过条件注解的方式来实现的,这也是Spring4.x的新特性。
五、为什么学习一门技术之前需要了解他的背景
1、帮助理解
让学习者了解一门技术的起源、背景、发展,帮助补充自己的一些知识空白,让知识不是凭空出现的,算是打一个地基吧。通过掌握发展脉络,更全面的了解所学内容的真实内涵和背景意义。
2、增加判断力
拿Spring boot举例,在我开始学习Java语言的时候,Spring boot就已经是企业中最流行的框架了,老师会告诉我们这个框架好,容易学,所以我们也在浅层意义上知道他好,他简单,却没有自己的判断。
3、增加创新力
可以帮助我们去判断一件事情的发展方向。如果知识学习用一门技术,而不去真正的了解它为什么会发展成现在这样,那我们也没办法去思考他以后可能会发展成什么样,我们所用的就永远都是别人的框架而没有自己的东西。
卡耐基:不应将其理论奉为高高在上的教条一样去推崇和奉行,应该先理解其产生的社会背景、在当时的意义,才能理性的去了解和运用。