Spring Boot实战系列《四》:Spring Boot入门项目

Spring Boot实战系列《四》:Spring Boot入门项目

1.前言

经过前面一篇文章Spring Boot实战系列《三》:Spring Boot 简介,我们已经知道了spring boot的大概情况。

在使用spring boot之前,最好先知道以下内容:

  • 有过Spring框架的使用经验。
  • 熟练使用maven进行项目构建和依赖管理。
  • 熟练使用eclipse或者IDEA等web开发工具。

所用环境:

  • Jdk1.8 以上
  • Maven3.x以上
  • IDEA或eclipse
  • Spring Boot 1.5.X以上

2.创建项目方式

创建一个spring boot项目,常用以下两种方式:
1、创建maven项目
2、引入starters
3、创建主程序
4、启动运行项目

或者:
使用Spring Initializer快速创建Spring Boot项目。(开发时推荐)

3.Hello World入门项目

入门只需要完成一个功能:
浏览器发送hello请求,服务器接受请求并处理,响应Hello World字符串;

打开IDEA。

1、创建一个maven工程;(jar)

Spring Boot实战系列《四》:Spring Boot入门项目

新建完成以后,右下角有开启自动导入。
Spring Boot实战系列《四》:Spring Boot入门项目

最后的项目结构:
Spring Boot实战系列《四》:Spring Boot入门项目

2、导入spring boot相关的依赖

webjars官网: https://www.webjars.org/ ,在里面选择好spring boot的jar包版本。

复制导入pom.xml:
Spring Boot实战系列《四》:Spring Boot入门项目

源码:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

然后maven就会自动下载指定的jar包了,完成:
Spring Boot实战系列《四》:Spring Boot入门项目

导入完成以后。

3.需要编写一个主程序HelloWorldMainApplication:

是用来启动spring boot应用,注意,注解是不能少的。

HelloWorldMainApplication.java:
是spring boot的主函数入口,里面有一个main()方法。是写好的。
Spring Boot实战系列《四》:Spring Boot入门项目

源码:

/**
 *  @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
 */
@SpringBootApplication
public class HelloWorldMainApplication {

    public static void main(String[] args) {

        // Spring应用启动起来
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}

4、编写相关的Controller、Service

在创建好的java文件夹下写一个类:
包名+类名:com.zout.controller.HelloWorld
得HelloWorld.java。
源码:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello World!";
    }
}

Service层暂时没用到。

5.运行主程序测试:

运行HelloWorldMainApplication里面的main方法,spring boot就开始启动,然后在浏览器输 http://localhost:8080/hello , 即可访问。

效果:
Spring Boot实战系列《四》:Spring Boot入门项目

6. 部署spring boot项目

假设在我们开发完成一个spring boot项目以后,难道还要像以前一样,打包成war包,然后上传到服务器,去服务器配置同样的运行环境,然后在部署嘛?
不是的,我们只需要使用一个插件,然后把项目打包成一个可执行的jar包,不要打war包,也不需要在服务器配置tomcat环境。

根据官网的:
https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#getting-started-first-application-executable-jar 所写,
图示:
Spring Boot实战系列《四》:Spring Boot入门项目
找到依赖的格式。然后复制到pom.xml中。

在pom.xml里面加入插件依赖:

 <!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

将这个应用打成jar包:
Spring Boot实战系列《四》:Spring Boot入门项目

然后找到项目名称:
Spring Boot实战系列《四》:Spring Boot入门项目
双击运行package方法。
然后可以直接在项目下找到:
Spring Boot实战系列《四》:Spring Boot入门项目

Ctrl+c即可复制出jar包。

运行项目的jar包:
我是复制到了桌面,然后查看一下桌面的路径。复制下来
Spring Boot实战系列《四》:Spring Boot入门项目

ctrl+R调出cmd窗口:使用 java –jar xxx.jar 的形式运行jar包。
Spring Boot实战系列《四》:Spring Boot入门项目

在服务器没有tomcat等环境下照样执行。
浏览器输入地址即可访问到我们的jar项目:
Spring Boot实战系列《四》:Spring Boot入门项目

这样做,不需要服务器上拥有tomcat等环境,照样执行。只需要最基本的java环境即可部署项目,方便快捷。

我们把pom文件提出来单独解释一下:
Spring Boot实战系列《四》:Spring Boot入门项目

解释:spring-boot-starter-parent 称为父项目:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>

他的父项目是:
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>1.5.9.RELEASE</version>
  <relativePath>../../spring-boot-dependencies</relativePath>
</parent>

它来真正管理Spring Boot应用里面的所有依赖版本,可以看出我们引用的都是1.5.9版本的spring boot。

就是一个Springboot版本仲裁中心:是用来指定所有依赖的版本。
如果我们导入依赖默认是不需要写版本号的;(没有在dependencies里面管理的依赖自然需要声明版本号)。

其次:
spring-boot-starter-web:spring boot的场景启动器,
帮我们导入了web模块的相关的依赖,依赖的版本都是以父项目来指定仲裁。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

称为启动器

spring-boot-starter-web:

spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;

Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。

比如:
Spring Boot实战系列《四》:Spring Boot入门项目
点击进去就可以看到怎么导入:
Spring Boot实战系列《四》:Spring Boot入门项目

一句话,springboot将所有的功能场景都抽取出来,做成一个个的starter(启动器),当我们引入这些相关场景的依赖,都会导入进来。

要用什么功能,就导入什么的场景启动器。
比如,我们导入spring-boot-starter-data-jdbc那么就是用来连接JDBC的依赖,自动导入进来,就可以和数据库交互了。

最后解释一下里面的一些注解:
在Spring boot中,注解使用非常频繁,通过使用注解可以有效的提供开发效率,让项目代码看起来更简洁。

主程序的入口类:

@SpringBootApplication 注解:

spring boot应用标注了某个类上,则说明这个类是springboot的主配置类,springboot就应该运行这个类的main方法来启动springboot应用。

@ResponseBody:表示该方法的返回结果直接写入HTTP response body中

比如:

一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

@SpringBootConfiguration注解:标注当前类是配置类,是Springboot的配置类。


以上就是Spring Boot入门项目的从创建、编码、测试、访问、打包、部署运行的一个流程,以后开发项目以后,也是这么一个基本过程。 通过上面的做法,我们可以看出spring boot的简便性,但是这就完了吗?下一篇我们开始讲项目开发使用的方式,使用Spring Initializer快速创建Spring Boot项目,然后开始我们人事管理系统的代码编写。