点击上方"蓝字", 右上角选择“设为星标”
周一至五早8点半!精品技术文章准时送上!

前面在介绍springCloud的时候有用到SpringBoot这种非常便捷的框架,但是没有详细的去说它,那么这个专题我们来说一说springBoot是什么以及它怎么样和其他的组件进行整合的,另外这里我们用到的springBoot版本是1.5.19.Release,而后面我们也会对springboot 2.x版本进行详细的说明。
学习一个新的东西最直接的就是去它的官网看看,了解这个技术是什么、有什么作用、有什么特点等,下面看看SpringBoot官网的解释。
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
Create stand-alone Spring applications
Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
Provide opinionated 'starter' dependencies to simplify your build configuration
Automatically configure Spring and 3rd party libraries whenever possible
Provide production-ready features such as metrics, health checks and externalized configuration
Absolutely no code generation and no requirement for XML configuration
--官方说明:https://spring.io/projects/spring-boot
上面官方解释的是SpringBoot能快速的创建一个独立的,生产级别的spring应用,大部分的应用只需要很少的一点配置。后面也列出了它的特点:
独立的Spring应用。
直接内嵌Tomcat,jetty,undertow无需war包部署。
提供了固定的start依赖简化了构建配置。
尽可能自动配置Spring和第三方库。
提供生产就绪的特性,如度量、运行状况检查和外部化配置。
不在需要xml的配置。
我们来举个例子对比下,最简单的HelloWorld。这个在java里面学习最常用的一个demo。下面我们简单的描述下用Spring怎么创建这个例子。
创建一个web项目并且导入相关jar包。SpringMVC Servlet
创建一个web.xml
编写一个控制类(Controller)
需要一个部署web应用的服务器如tomcat
下面我们来看看使用SpringBoot如何做,在此之前我们先了解下springBoot的启动器。
现在我们来通过maven构建一个简单的springBoot 项目,如何对maven可以去百度查阅下,这里就不多说了,我们一步一步来演示。为了更好的多项目就行管理,我们这里先创建一个pom项目。
这里我们通过idea开发工具,在File-new-project..创建一个maven项目

然后next下一步

在GroupId里面填写组织的标识符,这里我们用com.cnzx,当然这里可以根据自己的情况写。在ArtifactId里头填写项目名称即可,然后在next下一个,后面的都默认不用填写,直接Finsh就可以了。如下图:

这里我们需要对项目就行一下修剪,第一个就是删除src文件夹,pom项目是不需要这些的,第二修改pom文件,加上packaging声明这个项目是pom项目而不是jar项目,如果没有默认是jar项目。
<packaging>pom</packaging> |
作为一个父项目,我们添加一些版本依赖的管理。
<?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>com.cnzx</groupId> <artifactId>springboot-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <properties> <java.version>1.8</java.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.19.RELEASE</version> </parent> </project> |
正题开始!!!
首先我们在pom项目上新建一个Module模块

后面的步骤和上面创建pom项目一样,这里就不多说了,直接上图。

在子项目上我们可以看出这个子项目是依赖于springboot-demo这个父项目的,而在父项目的pom文件里面也会多出一个声明,如下图。

下面主要对01-springboot-helloworld进行操作,我们都知道helloworld是一个web工程,所有在pom文件里面需要添加web依赖,另外上面介绍的springboot的时候有说明,springboot应用是不需要部署到tomcat上面的,但是我们怎么进行编译呢,这里就要用到一个插件,同样的我们只需要在pom文件里面声明即可,springboot会自己帮助我们完成其他的操作。如下图:
<?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"> <parent> <artifactId>springboot-demo</artifactId> <groupId>com.cnzx</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>01-springboot-helloworld</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> |
这里有必要说下Springboot的启动器。所谓的springBoot启动器其实就是一些jar包的集合。SprigBoot一共提供44启动器,举个例子:
spring-boot-starter-web
支持全栈式的web开发,包括了Tomcat和springMVC等jar
spring-boot-starter-jdbc
支持spring以jdbc方式操作数据库的jar包的集合
spring-boot-starter-redis
支持redis键值存储的数据库操作
这些不要全部去记住,但是要知道有那些就可以,等要用的时候去官网查阅一下即可。
下面我们继续。。。
下面我们先创建一个包com.cnzx.controller,在创建一个HelloWorldController,这里有过springMvc经验的都知道这是干嘛的。直接贴代码!
package com.cnzx.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @RestController public class HelloWorldController { @RequestMapping(value = "printHelloWorld",method = RequestMethod.GET) public String printHelloWorld(){ return "This Is My Frist SpringBoot Application 'HelloWolrd' Project "; } } |
这里面注意要添加@RestController注解,表示这个类是一个控制类,并且以Json格式输出。下面就是最后一步,我们知道springboot是不需要部署在Tomcat里的,那么它怎么启动呢?这里我们就需要创建一个启动类AppStart.class,用来启动这个应用。
package com.cnzx; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AppStart { public static void main(String[] args){ SpringApplication.run(AppStart.class,args); } } |
我们来分析下这个启动类,从上面的代码可以很明显的看出,这个启动类非常的简单,里面就一个main方法。这里比较显著的就是在类的上面有一个注解:@SpringBootApplication和方法里面有一个 SpringApplication.run()。所以要揭开SpringBoot的神秘面纱,我们要从这两位开始就可以了。
既然有启动类了那么是不是我们就可以启动这个应用了呢!!!答案是当然可以了。让我们运行这个main方法,看看控制台有什么,如下图:

如果有上述的输出那么就说明这个应用已经成功的启动了,而且访问的默认端口是8080。我们在浏览器上访问下上面的printHelloWorld方法,看看能不能输出我们想要的。

可以看出已经有信息输出了。就是这么简单。相对原始的springMvc可以说已经非常的方面快捷了。
好了,本篇SpringBoot的介绍与搭建就差不多到这里了,下篇我们对springboot的原理就行一个全面的分析。
更多Java、数据库、微服务、分布式的原创系列文章正在路上,欢迎扫描下方二维码,持续关注:

灵动思维文化传媒(id:itjhzx)
多年技术经验倾囊相授





