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

创建Spring Boot应用(1)

行于 2022-08-25
696

Spring官方提供了Spring Initializr网站来创建Spring Boot项目,Intellij IDEA编辑器也内置了Spring Initializr生成器。这里就以Spring Initializr为例介绍如何初始化Spring Boot项目骨架。

1. 使用Spring Initializr

  1. 访问Spring Initializr网站;
  2. 在左侧依次选择Project(项目构建方式:使用Maven,还是使用Gradle方式)、Language(默认选择Java,一般无需修改)、Spring Boot(默认选择2.7.3,比较稳定,一般无需修改),设置Project Metadata相关信息;
  3. Group:项目所属组织的标识符,比如:com.jiaoxn;
    • Artifact:项目标识符,比如:example;
    • Name:默认保持与Artifact一致即可;
    • Description:项目的描述信息;
    • Package name:项目报名,默认根据Group和Artifact的组合,比如:com.jiaoxn.example;
    • Packaging:项目打包方式,默认为JAR,默认即可
    • Java:项目使用的JDK版本,选择11或者8版本
  4. 在右侧选择相关的依赖,这里仅介绍开发Web项目的基础依赖:
    • Spring Web
      :使用Spring MVC构建Web应用程序,包括RESTful,并使用Apache Tomcat作为默认的嵌入式容器。
img

配置完成后,点击GENERATE
,Spring Initializr会自动创建项目并提供ZIP包下载。

2. 项目文件夹结构

项目文件夹的结构:

笔者将默认的application.properties文件改为application.yml文件

img

其中:

  • src/main/java
    对应开发目录,业务代码都是在这里面;
  • src/main/resource
    对应资源目录, 包括配置文件、静态资源、模板文件等;
  • src/test
    对应测试文件目录;
  • pom.xml
    对应SpringBoot的配置文件,用来管理项目依赖;
  • ExampleApplication.java
    是该应用的主类。

3. 启动应用

运行Spring Boot应用,就是运行应用主类的main方法,可以通过IDE工具运行或者构建工具运行。

3.1 通过IDE工具启动

使用IDEA编辑器,点击右上方的Run ...
按钮即可启动该项目,点击Debug ...
按钮以调试模式启动该项目。

img

3.2 通过构建工具启动

如果想以构建工具的方式运行该应用,需要先确保应该安装了Spring Boot Maven插件,即在pom.xml中检查是否含有如下内容:

<build>
  <plugins>
    <!-- 定义Spring Boot Maven,用于运行Spring Boot应用 -->
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

然后,在包含pom.xml文件的路径中执行如下命令:

mvn spring-boot:run

3.3 查看应用

此时访问浏览器并输入localhost:8088
会得到以下界面:

img

该界面是Spring Boot的默认的错误界面,表示请求的服务不存在。

4.  定义第一个控制器

本系列教程是介绍:在前后端分类架构中,如何使用Spring Boot框架开发后端接口,不会介绍Thymeleaf视图模板技术。

在包com.jiaoxn.exmaple
下创建controller
包,并在其中创建ExampleController.java
文件,编写如下内容:

package com.jiaoxn.example.controller;

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

/**
 * @author jiao xn
 * @date 2022/8/24
 */

@Controller
public class ExampleController {
    @GetMapping("/example")
    @ResponseBody
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

重新运行该项目,并在浏览器中访问localhost:8088/example
,得到以下界面:

img

如果以前用过Spring MVC,对上面的代码肯定很熟悉,它是一个很简单的MVC中的控制器,其中:

  • @Controller
    :修饰类,指示该类的实例作为控制器
  • @GetMapping
    :修饰方法,指示该方法所能处理的GET请求地址
  • @ResponseBody
    :修饰方法,指定该方法生成RESTful响应

5. 配置热部署

默认情况下,新增Controller文件或者修改Controller文件后,都需要手动重新运行该项目,这大大影响了开发效率。Spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用,具体使用方法如下:

  1. 编辑pom.xml
    文件,添加spring-boot-devtools
    依赖,然后安装maven依赖
...
<dependencies>
  ...
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
  </dependency>
</dependencies>

  1. 修改IDEA相关配置

  2. 打开Settings
    界面,依次选择Build、Execution、Deployment
    Compiler
    ,勾选Build project automatically

    • 2021版之前,通过组合键ctrl+alt+shift+/
      打开registry
      窗口,勾选compiler.automake.allow.when.app.running
    • 2021版之后,在Settings
      界面,在Advanced Settings
      中,勾选Allow auto-make ...
  3. 重启IDEA软件

6. 打包应用

Spring Boot内嵌了Web服务器(默认是Tomcat),无需将Spring Boot应用部署到其他Web服务器,只需打包成JAR包即可。

打包之前也需要确认,当前Spring Boot应用配置了Spring Boot Maven依赖,具体确认方法参考3.2节。另外,还需要确认pox.xml中的<packaging.../>
元素的值是否为jar
,默认情况下没有该元素是被省略的,此时代表使用packaging
的默认值:jar。

与启动应用类型,打包应用也有2种方法:通过IDE或者使用构建工具。

  1. 打开IDEA右侧的Maven
    面板,双击package
    打包项目应用;
  2. 在pom.xml文件所在的路径下,一次执行mvn clean
    mvn package
    2条命令。
img

打包过程会先执行compile
阶段(编译项目)、test
阶段(测试阶段)、package
阶段(打包阶段)。

打包成功后,,可在target
目录下看到对应的*.jar
文件。jar文件名称中,example
对应第1章中介绍的Artifact
项目标识符,0.0.1-SNAPSHOT
是版本号,可在pom.xml
中配置。

打包得到的JAR
文件可以通过java -jar <filename>.jar
命令来运行。


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

评论