暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SpringBoot的介绍与搭建

灵动思维文化传媒 2019-02-13
315

点击上方"蓝字", 右上角选择“设为星标”

 周一至五早8点半!精品技术文章准时送上!

SpringBoot的介绍
SpringBoot recommend

前面在介绍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的启动器。


构建Spring Boot项目于第一个HelloWorld
Construction springboot Project and Frist HelloWorld


现在我们来通过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的原理就行一个全面的分析。



End

更多Java、数据库、微服务、分布式的原创系列文章正在路上,欢迎扫描下方二维码,持续关注:

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


文章转载自灵动思维文化传媒,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论