简述SpringBoot
一、什么是SpringBoot
为了摆脱繁杂的配置,让开发人员能够专心在代码开发上,SpringBoot在这样的背景下因运而生。
它本身并不提供Spring框架的核心特征以及拓展功能,只是用于快速敏捷地开发新一代用于Spring框架的应用程序,
简单说就是提升Spring开发效率的工具;它同时集成了大量的第三方库,可以实现零配置、打开即用等功能。
总结:
1、【快速入门】为所有Spring开发提供一个更快更广泛的入门体验;
2、【开箱即用】不合适时也可以快速抛弃;
3、【Spring血统】提供一系列大型项目常用的非功能性特征;
4、【零配置】(无需配置XML,遵循“约定大于配置”)
二、SpringBoot与其他框架关系
SpringBoot与Spring MVC
Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop。
ioc 提供了依赖注入的容器 。aop 解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。
Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种XML、 JavaConfig处理起来比较繁琐。
于是为了简化开发者的使用,从而创造性地推出了Spring boot,约定优于配置,简化了spring的配置流程。
SpringBoot与SpringCloud
SpringBoot先于SpringCloud问世, Spring Boot相当于脚手架,借助它可以快速搭建房子,它本身不具备任何功能属性,值是普通房间,没有其他任何功能。
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;
Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架;
Spring Boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置。
Spring Cloud很大的一部分是基于Spring Boot来实现,可以不基于Spring Boot吗?
答案是不可以,因为Spring Cloud的组件和模块都是基于Spring Boot来实现的,Spring Cloud是由许多Spring Boot应用组成的
Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。
三、搭建一个SpringBoot项目
1、安装Gradle
2、构建项目
进入 https://start.spring.io/ 选择相应选项构建项目,会生成相应工程文件,下载保存即可
3、修改build配置文件
build.gradle
// buildscript 代码块中脚本优先执行
buildscript {
// ext 用于定义动态属性
ext {
springBootVersion = '2.0.0.M4'
}
// 使用了Maven的中央仓库及Spring自己的仓库(也可以指定其他仓库)
repositories {
// mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
}
// 依赖关系
dependencies {
// classpath 声明了在执行其余的脚本时,ClassLoader 可以使用这些依赖项
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
// 使用插件
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
// 指定了生成的编译文件的版本,默认是打成了 jar 包
group = 'com.waylau.spring.cloud'
version = '0.0.1-SNAPSHOT'
// 指定编译 .java 文件的 JDK 版本
sourceCompatibility = 1.8
// 使用了Maven的中央仓库及Spring自己的仓库(也可以指定其他仓库)
repositories {
//mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
}
// 依赖关系
dependencies {
// 该依赖用于编译阶段
compile('org.springframework.boot:spring-boot-starter-web')
// 该依赖用于测试阶段
testCompile('org.springframework.boot:spring-boot-starter-test')
}
输出:
新建Hello World项目:将上述项目复制并改名为Hello World,在IDEA中导入
运行SpringBoot三种方式:
1、IDE中右键运行项目
输出:
2、java -jar
3、gradle bootRun 插件