Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用“习惯优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。
Spring Boot是开发者和Spring 本身框架的中间层,帮助开发者统筹管理应用的配置,提供基于实际开发中常见配置的默认处理(即习惯优于配置),简化应用的开发,简化应用的运维;总的来说,其目的Spring Boot就是为了对Java web 的开发进行“简化”和加“快”速度,简化开发过程中引入或启动相关Spring 功能的配置。这样带来的好处就是降低开发人员对于框架的关注点,可以把更多的精力放在自己的业务代码上。
同时随着微服务概念的推广和实践,Spring Boot的精简理念又使其成为Java微服务开发的不二之选,也可以说,Spring Boot其实就是为了微服务而生的Java web框架。
先如今,Spring Boot已经在蓬勃发展的快速应用开发领域(rapid application development)成为领导者
1.2.2 Spring Boot的核心功能
1、 可独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行。
2、 内嵌的Servlet容器:Spring Boot可以选择内嵌Tomcat、Jetty或者Undertow,无须以war包形式部署项目。
3、 简化的Maven配置:Spring提供推荐的基础 POM 文件来简化Maven 配置。
4、 自动配置Spring:Spring Boot会根据项目依赖来自动配置Spring 框架,极大地减少项目要使用的配置。
5、 提供生产就绪型功能:提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。
6、 无代码生成和xml配置:Spring Boot不生成代码。完全不需要任何xml配置即可实现Spring的所有配置。
我们的主要目标是:
- 为所有Spring开发提供一个更快,更广泛的入门体验。
- 立即开始斟酌,但随着需求开始偏离默认值,快速避开
- 提供大型项目(如嵌入式服务器,安全性,指标,运行状况检查和外部配置)通用的一系列非功能性功能。
- 绝对不会生成代码,并且不需要XML配置。
1.2.3SpringBootB的相关好处
A.为什么要用SpringBoot?
B.什么是SpringBoot?
C.SpringBoot与SpringCloud 的区别?
D.SpringBoot与SpringMVC 的区别?
(一)为什么要用SpringBoot?
以往的项目整合起来是比较繁琐复杂的,而且存在架包冲突的问题,这时候SpringBoot应运而生了,SpringBoot也就是用来做这个的。
(二)什么是SpringBoot?
SpringBoot是一个快速开发的框架,能过快速整合第三方框架,他是如何快速整合的呢?其实他是的基本原来是Maven依赖关系,Maven的集成,完全采用注解化,简化XML配置,内嵌HTTP服务器(Tomcate,jetty),默认嵌入Tomcate,最终以Java应用程序进行执行。
总结一下:
1.SpringBoot是微服务框架(网上很多这样说的朋友,其实并不合理,后面我们总结也SpringCloud的时候在细说)
2.SpringBoot核心:快速整合第三方框架
3.SpringBoot原理:Maven依赖关系,Maven的继承,完全采用注解化,Spring3.0以后采用注解方式启动SpringMVC
(三)SpringBoot与SpringCloud 的区别?
1.SpringBoot快速开发框架,快速整合第三方框架(Maven依赖关系###Maven继承),完全采用注解化,简化XML配置,最终以java应用程序进行执行。
2.SpringCloud一套目前完整的微服务解决框架,功能非常强大,注册中心,客户端调用工具,服务治理(负载均衡,断路器,分布式配置中心,网管,消息总线等)。
3.关系:微服务通讯技术Http+json(restfull)轻量级,SpringBoot Web组件默认集成SpringMVC,SpringCloud依赖于SpringBoot实现微服务,使用SpringMVC编写微服务接口。
总结:
SpringCloud 微服务开发——RPC远程通讯技术,服务治理,单纯的只是集成SpringBoot实现快速开发。
(四)SpringBoot与SpringMVC 的区别?
说白了就是SpringBoot Web组件默认集成SpringMVC框架,SpringMVC3.0以后支持注解方式使用java代码启动SpringMVC。
1.2.4为什么学习SpringBoot
1.从官方来看
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dd22f6f0e385660c03a77c4f09c6d5a6.png)
2.从Spring的优点来看
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d1cb5e37efe0309eb9ba7aa4b8b05b4f.png)
①良好的基因
因为SpringBoot是伴随着Spring 4.0而生的,boot是引导的意思,也就是它的作用其实就是在于帮助开发者快速的搭建Spring框架,因此SpringBoot继承了Spring优秀的基因,在Spring中开发更为方便快捷。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7af8d9ee6d25ab84ed4a0de90ac54f63.png)
②简化编码
比如我们要创建一个 web 项目,使用 Spring 的朋友都知道,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,我们只需要在 pom 文件中添加如下一个 starter-web 依赖即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
我们点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖,我们看一下其中的一部分,如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.7.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.7.RELEASE</version>
<scope>compile</scope>
</dependency>
由此可以看出,Spring Boot 大大简化了我们的编码,我们不用一个个导入依赖,直接一个依赖即可。
③简化配置
Spring 虽然使Java EE轻量级框架,但由于其繁琐的配置,一度被人认为是“配置地狱”。各种XML、Annotation配置会让人眼花缭乱,而且配置多的话,如果出错了也很难找出原因。Spring Boot更多的是采用 Java Config 的方式,对 Spring 进行配置。举个例子:
我新建一个类,但是我不用 @Service注解,也就是说,它是个普通的类,那么我们如何使它也成为一个 Bean 让 Spring 去管理呢?只需要@Configuration 和@Bean两个注解即可,如下:
public class TestService {
public String sayHello () {
return "Hello Spring Boot!";
}
}