Spring Boot概述
在过去的几年里,Java开发者们为了构建一个企业应用常常需要将许多的框架组合起来使用,例如Hibernate、SpringMVC和Spring等,这样的过程往往会耗费大量时间且复杂。这也就是Spring Boot应运而生的原因。
Spring Boot是由Pivotal团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义模板化的配置。Spring Boot集成了大量常用的第三方库配置,比如jackson、jdbc、druid、tomcat等,Spring Boot应用中这些第三方库几乎可以零配置的使用。
SpringBoot是什么?
1. SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用搭建和开发过程的一种框架;
2. SpringBoot完成了对各种框架的整合,让这些框架集成在一起变得更加简单,简化了我们在集成过程中繁琐的模板化配置;
3. 从最根本上来讲,Spring Boo是一个启动Spring项目的工具,是一些库的集合;
4. SpringBoot不是一个全新的框架,也不是Spring解决方案的替代品,而是对Spring框架的一个封装。所以,以前Spring可以做的事情,现在用SpringBoot都可以做;
5. 一般情况下,一个SpringBoot应用 = 一个微服务 = 一个模块 = 一个有边界的上下文;
6. SpringBoot是整合Spring技术栈的一站式框架,是简化Spring技术栈的快速开发脚手架,是一个能够快速构建生产级别的Spring应用的工具。
SpringBoot的核心功能有哪些?
1. 独立运行:SpringBoot开发的应用可以以JRA包的形式独立运行,运行一个SpringBoot应用只需通过 java –jar xxxx.jar 来运行;
2. 内嵌容器:SpringBoot内嵌了多个WEB容器,如:Tomcat、Jetty、Undertow,所以可以使用非WAR包形式进行项目部署;
3. 自动starter依赖:SpringBoot提供了一系列的starter来简化Maven的依赖加载。starter是一组方便的依赖关系描述符,它将常用的依赖分组并将其合并到一个依赖中,这样就可以一次性将相关依赖添加到Maven或Gradle中;
4. 自动配置:SpringBoot会根据在类路径中的JAR包和类,自动将类注入到SpringBoot的上下文中,极大地减少配置的使用;
5. 应用监控:SpringBoot提供基于http、ssh、telnet的监控方式,对运行时的项目提供生产级别的服务监控和健康检测;
6. 无代码生成/无需编写XML配置:SpringBoot不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新特性。Spring4.x提倡使用Java配置和注解组合,无需编写任何xml配置即可实现Spring的所有配置功能;
MVC、Spring、SpringMVC、SpringBoot、SpringCloud的区别是什么?
1. MVC:MVC是一种设计模式,即Model模型、View视图以及Controller控制器;
2. Spring:Spring是一个开源框架,是在2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的,框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。Spring的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP),简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架;
3. SpringMVC:SpringMVC是一种WEB层的MVC框架,它是spring的一个模块,属于SpringFrameWork的后续产品,拥有spring的特性。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色;
4. Spring Boot:它不是一个全新的框架,也不是Spring解决方案的替代品,而是对Spring框架的一个封装。所以,以前Spring可以做的事情,现在用SpringBoot都可以做;
5. Spring Cloud:Sping Cloud是Spring的一个顶级项目,是一个微服务框架,提供了全套的分布式应用系统的解决方案。为开发者提供了快速构建分布式系统的工具,使其可以快速的启动服务、构建应用、同时能够快速和云平台资源进行对接。