一,简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot提供了一种新的编程范式,能在最小的阻力下开发Spring应用程序。有了它, 开发人员可以更加敏捷地开发Spring应用程序,专注于应用程序的功能,不用在Spring的配置上多花功 夫,甚至完全不用配置。实际上,Spring Boot的一项重要工作就是让Spring配置不再成为开发路上的绊脚石。
spring boot并不是一个全新的框架,它不是spring解决方案的一个替代品,而是spring的一个封装。所以,以前可以用spring做的事情,现在用spring boot都可以做。
现在流行微服务与分布式系统,Spring boot就是一个非常好的微服务开发框架,可以使用它快速的搭建起一个系统。同时,你也可以使用spring Cloud(Spring Cloud是一个基于Spring Boot实现的云应用开发工具)来搭建一个分布式的网站。
二,SpringBoot的优点
使编码变得简单
SpringBoot采用Java config的方式,对Spring进行配置,并且提供了大量的注解,极大地提高了工作效率。
使配置变得简单
spring boot提供许多默认配置,当然也提供自定义配置。但是所有spring boot的项目都只有一个配置文件:application.properties/application.yml。用了spring boot,再也不用担心配置出错找不到问题所在了。
使部署变得简单
spring boot内置了三种servlet容器:tomcat,jetty,undertow
名称 |
Servlet版本 |
Java版本 |
Tomcat 8 |
3.1 |
Java 7+ |
Tomcat 7 |
3 |
Java 6+ |
Jetty 9 |
3.1 |
Java 7+ |
Jetty 8 |
3 |
Java 6+ |
Undertow 1.1 |
3.1 |
Java 7+ |
所以,只需要一个Java的运行环境就可以运行SpringBoot的项目了。SpringBoot的项目可以打成一个jar包,然后通过java -jar xxx.jar来运行。(SpringBoot项目的入口是一个main方法,运行该方法即可)
也可以将Spring Boot应用部署到任何兼容Servlet 3.0+的容器。
使监控变得简单
SpringBoot提供了actuator包,可以使用它来对应用进行监控。
三,微服务架构
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
例如要开发一个购票系统。就可以简单的拆分为用户管理微服务和售票系统微服务。两个服务都可以独立运行,都有自己的数据库,他们之间通过HTTP API 进行通信。
而SpringBoot就是搭建微服务的一个很好的选择。
微服务一般都是运行在分布式环境中的,这可不是简单的写一个SSM框架的小程序就可以解决的,其中需要用到很多技术,比如负载均衡,反向代理,服务治理,配置管理,消息总线等,SpringCloud提供了这些技术。并且,SpringCloud生态是基于spring boot的。
四,SpringBoot的创建,使用
可以像使用其他任何标准Java库那样使用SpringBoot,只需简单地在classpath下包含正确的 spring-boot-*.jar 文件。 SpringBoot不需要集成任何特殊的工具, 所以可以使用任何IDE或文本编辑器;Spring Boot应用也没有什么特殊之处, 所以可以像任何其他Java程序那样运行和调试。
尽管可以拷贝SpringBoot jars, 不过,通常推荐使用一个支持依赖管理的构建工具(比如Maven或Gradle)或者内嵌依赖管理工具的IDE,如Spring的官方IDE-STS。
项目创建
可以选择打包方式
可以选择需要的依赖
完成项目创建后添加为Maven项目
首先设置Maven的路径
将项目创建为Maven管理项目
配置.pom文件添加起步依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</sc