Spring Boot介绍及使用
SpringBoot介绍
SpringBoot已成为当今最流行的微服务开发框架,它和spring 4一起诞生的,比如@RsetController可以快速上手,整合了一些子项目(包括开源框架和第三方代码库),直接引入就能用,帮你封装好了基于Spring ,容易快速入门,是Spring全家桶中的一员SpringBoot可以独立创建并运行应用而不依赖容器,就是说不需要打包成war包,可以放在tomcat中直接运行。
SpringBoot特点
1. 基于Spring,使开发者入门简单,快速上手。
2. Springboot可以创建独立的运行应用而不依赖容器。
3. 不需要打包成war包,可以放入tomcat中直接运行。
4. 配置Maven简单,但是会引入不需要的包根据项目依赖,去配置Spring,需要什么就配置什么,这样可扩展性也十分的强。
5. 提供了一些可视化的功能,方便监控,比如性能,整个应用程序的健康程度,都可以通过可视化工具去查看。
6. 简化配置,不需要更多的xml配置,SpringBoot通过很多的注解来实现和xml相同的功能。通过简单的配置可以让我们完成以前复杂的SSH配置。
7. SpringBoot是为了SpringCloud铺路的,它整合了各式各样的框架来构建微服务,比如Dubbo,thrift等等。
下图是截取官网对Spring Boot的特点说明
Spring Boot只有一个产出,那就是jar包,会将Redis,tomcat等组件都会整合在一起,并随着程序的启动随之一起运行。
默认情况下Spring Boot会做出它认为最优的配置。
Spring Boot提供了相应的健康检查和监控,比如服务器负载,CPU负载,响应时间等服务器基本参数,这些对于线上问题分析十分有用。
Spring Boot用于简化Spring应用的配置过程,采用“习惯优于配置”的方式开发。 以前开发中会将所有的配置一个个写入到配置文件中,虽然这种方式粒度比较细,但是开发效率低,并且容易出错。Spring Boot就比较简单,它有它的约束和规定,不用代码生成和XML文件配置,而采用约定俗成的命名,文件结构,注解等进行的。
SpringBoot使用场景
1. 有Spring的地方都可以。
2. j2EE/web项目,比SpringMvc更容易上手。
3. 微服务,SpringBoot是微服务的基础。
SpringBoot安装及上手使用
可以使用官方提供的一个地址 https://start.spring.io/
前置准备:
1. JDK1.8及以上版本。
2. 建议安装编辑器Intellj Idea Ultimate(旗舰版)。
3. Maven和Spring MVC。
Spring Boot流程
1. 创建Maven工程,构建项目结构。
2. 配置pom.xml文件,引用各种started启动器简化配置。
3. 配置运行参数,安装预期去运行。
4. 编码和测试。
5. 打包,发布和独立运行。
Spring Boot安装
1. 创建Maven项目
点击下一步,按照你自定义去填写就好。
点击完成后,在resources目录中创建如下三个目录和文件,这几个文件目录是Spring Boot强制要求的。
看下Spring Boot目录说明
Spring Boot所需要的依赖项
依赖项名称 | 说明 |
spring-boot-starter-parent | 所有的Spring Boot组件基础应用 |
spring-boot-starter-web | 对Spring Boot提供web功能支持 |
spring-boot-starter-thymeleaf | (可选)提供thymeleaf模板引擎支持 |
spring-boot-maven-plugin | 提供Spring Boot打包功能 |
编辑pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.SprintBootExample</groupId> <artifactId>MySpringDemo</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
<parent>标签表示基础的依赖包,在当前项目中不引用,而且parent中指定了version,下面依赖就不用指定,而会和parent的version同步。