使用Maven构建SpringBoot项目

前言

网上介绍了许多如何创建Springboot项目,大多数基于IDE开发工具并且用Maven管理,如果在当前的开发环境并不充裕下,我们可以直接使用Maven命令来创建管理SpringBoot项目,对于习惯使用命令来创建项目来说比较的方便、同时更好的理解SpringBoot的项目结构。

1.创建一个Maven项目

1.1使用Maven创建一个简单的Java项目

以VSCode为例,Ctrl + ` 快捷键打开终端
在这里插入图片描述
假设项目的名称为 example
在控制台中输入如下Maven指令即可生成

mvn archetype:generate
 "-DgroupId=com.project"
 "-DartifactId=example" 
 "-DarchetypeArtifactId=maven-archetype-quickstart"
 "-DinteractiveMode=false"
  1. -DgroupId=com.project:组id。
  2. -DartifactId=example:项目名称,maven会根据这个名称在当前目录下新建一个名为该名称的目录用于建立项目。
  3. -DarchetypeArtifactId:项目原型,使用哪种原型来创建项目的初始结构,在这里,我们先使用maven-archetype-quickstart创建一个简单的 Java 应用。
  4. -DinteractiveMode=false :是否已交互模式进行,如果是false的话就会采用默认设置建立项目。

创建成功后如图所示,控制台所示
在这里插入图片描述

1.2项目结构介绍

在这里插入图片描述

注意:上面构建的只是一个简单的 Java 项目,如果是构建 Web 项目,我们还需要对目录结构进行调整,便于我们后续开发,我们需要做如下调整。

  1. App.java 和 AppTest.java 这两个文件我们不需要,可以直接删除掉。
  2. 在 main 目录下添加 resources 目录,用于存放资源文件。
  3. 在 example/src/main/java/com/project包下创建 example包,并在 /example包下创建 exampleApplication.java 类,作为整个项目的启动项。

经过调整,目录结构如下图所示:
在这里插入图片描述

1.3添加项目依赖

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.project</groupId>
  <artifactId>example</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>example</name>
  <url>http://maven.apache.org</url>
  <description>用户权限管理系统</description>
  <!-- 设置父模块,这样就可以继承父模块中的配置信息 -->
  <parent>
    <!-- Springboot依赖 -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
    <relativePath/>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <!-- 添加 web 依赖 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  </dependencies>
  
  <build>
    <plugins>
      <!-- Spirng Boot Maven 插件 -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

1.4添加启动类

在启动类中加入main方法,设置为启动类。

package com.project.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@ServletComponentScan
@SpringBootApplication
public class exampleApplication {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(exampleApplication.class,args);
        System.out.println("你好,这里是example项目");
    }
}

1.5编译打包项目

终端输入如下命令下载依赖

mvn clean install

执行完毕后,项目结构如下:
在这里插入图片描述

执行完上面语句后(或者在创建完项目后),在项目根目录下多了一个 target 目录。target 是用来存放项目构建后的 jar 包、war 包以及编译的 class 文件等文件,target 目录下的所有内容均为 Maven 构建项目过程中生成的。

1.6添加controller内容

项目触目搭建成功,下面来编写一个Controller接口来验证项目是否创建成功

  1. 在 example/src/main/java/com/project/example包下创建 system 包(可以去任何名称),用于存放业务相关的代码。
  2. 在 system 包下添加 controller 包,用于存放前端接口控制器的类。
  3. 在 controller 包下添加FirstController.java 类,作为项目启动的测试类。
package com.project.system.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController//Controller 里面的方法都以 json 格式输出
public class FirstController {
    
    
    @GetMapping("/first")
    public String first(){
    
    
        return "你好";
    }
}

2.启动项目

下面将介绍两种常用的控制台启动项目的方式。

  1. 使用 Maven 启动项目。
  2. 运行 jar 包启动项目。

此处我们是用Maven命令启动项目

2.1使用Maven启动项目

mvn package 编译打包
mvn spring-boot:run 启动项目

启动完成后,控制台出现如下图所示即为启动成功:
在这里插入图片描述

3.SpringBoot配置文件详解

3.1配置文件使用说明

在 Spring Boot 项目中,支持如下两种文件格式的配置文件。

application.properties
application.yml

下面我们来看看 properties 配置文件和 yml 配置文件的区别。

  • application.properties 就是常规的 key=value 格式配置文件,例:
# 默认加载配置项
spring.profiles.active=prod
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=root

properties 文件有一个缺点,当要配置的参数比较多时,你就会发现它的层次不是那么清晰,不便于阅读。而且很多同层级的名称都是重复的。

  • yml 文件的基本写法为: key: (空格) value 。值得注意的是,键和值中间用冒号加上空格连接,缺一不可,否则无法读取配置项,案例如下。
spring:
  profiles:
    active: prod
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test
    username: root
    password: root

注意:上下层级的关系用空格表示,空格格数没有要求,只要是左对齐的一列数据都是同一个层级的就行。为了美观建议使用 Tab 缩进或者统一空 4 格区分上下级。

properties 文件和 yml 文件都作为配置文件,他们的目的并没有区别,相比 properties 配置文件,yml 配置文件在写的时候层次感强。Spring 官方推荐使用的格式是 .yml 格式,所以目前大部分 Spring Boot 的 Web 项目的配置文件都是使用 yml 文件。本篇文章中我们也将使用 yml 文件作为项目的配置文件。

3.2配置端口和路径

在 /src/main/resources 目录下创建 application.yml 文件,并写入如下配置内容,我们就可以修改项目的根路径。

server:
  # 配置端口
  # port: 8080
  servlet:
    # 设置项目路径
    context-path: /example

添加完毕后,我们重新打包,运行项目。

mvn package 编译打包
mvn spring-boot:run 启动项目

打开浏览器,输入localhost:8080/upms/hello 进行访问,如下图所示:
在这里插入图片描述

3.3自定义配置属性

除了系统提供的配置,我们也可以在 application.yml 中添加如下自定义的配置。

server:
  # 配置端口
  port: 8080
  servlet:
    # 设置项目路径
    context-path: /example

# 自定义配置
example:
  name: example
  version: 0.0.1
  description: example项目

如果想使用配置项,我们只需要在类的属性前加上注解 @Value(“${属性名}”),我们可以在 controller/FirstController.java 中添加如下内容:

package com.project.example.system.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController // Controller 里面的方法都以 json 格式输出
public class FirstController {
    
    
    @Value("${example.name}")
    private String appName;

    @Value("${example.version}")
    private String appVersion;

    @Value("${example.description}")
    private String appDescription;

    @GetMapping("/Msg")
    public String Msg() {
    
    
        return "名称:" + appName + "," +
               "版本:" + appVersion + " ," +
               "描述" + appDescription;
    }

    @GetMapping("/first")
    public String first() {
    
    
        return "你好";
    }
}

添加完毕后,我们重新打包,运行项目。

mvn package 编译打包
mvn spring-boot:run 启动项目

打开浏览器,输入localhost:8080/upms/Msg进行访问,如下图所示:

在这里插入图片描述

3.4多环境配置

在开发项目的过程中,可能一套程序需要在不同的环境中发布,它的数据库配置、端口配置或者其他配置各不相同,如果每次都来根据需要修改对应的环境配置,是非常容易配置错误的,造成不必要的麻烦。
通常这种情况下,我们可以针对不同的环境配置不同的配置文件来解决。在 Spring Boot 项目中,默认支持下面这两种格式的。

  • application-{name}.properties
  • application-{name}.yml

其中 {name} 对应环境标识。我们在 Spring Boot 项目中也可以创建不同的配置文件,文件名以 application-{name}.yml 的格式。

  • application-dev.yml 开发环境
  • application-test.yml 测试环境
  • application-prod.yml 生产环境

我们在 src/main/java/resources 目录下创建如下图所示的配置文件。
在这里插入图片描述
在 application-dev.yml 配置文件中添加如下内容。

# 自定义配置
example:
  name: example
  version: 0.0.2
  description: example项目(开发环境)

在 application-prod.yml 配置文件中添加如下信息。

# 自定义配置
example:
  name: example
  version: 0.0.3
  description: example项目(生产环境)

在 application-test.yml 配置文件中添加如下信息。

# 自定义配置
example:
  name: example
  version: 0.0.4
  description: example项目(测试环境)

在 application-test.yml 配置文件中添加如下信息。

# 自定义配置
example:
  name: example
  version: 0.0.4
  description: example项目(测试环境)

然后在配置文件 application.yml 中添加 spring.profiles.active 来设置当前使用的环境,其中 test 代表默认启用 application-test.yml 配置文件。
在这里插入图片描述

也可以将 test 修改成 dev 或者 prod 后测试看下效果,这里我们就不再演示了。

4.个性化Banner配置

我们注意到 Spring Boot 项目启动时,控制台会打印自带的 Banner,如下图所示:在这里插入图片描述
如果我们也想自己定制一个怎么办,这里有个定制 Banner 的网站
英文ASCII艺术字,Spring Boot自定义启动Banner在线生成工具
文字、图片都可以秀起来,怎么秀就看你的了.
只需要在 /resources 目录下创建一个 banner.txt 文件,添加位置如下:
在这里插入图片描述
并在 banner.txt 文件中添加如下内容。

                                   _ __     _            
   ___    __ __   __ _    _ __    | '_ \   | |     ___   
  / -_)   \ \ /  / _` |  | '  \   | .__/   | |    / -_)  
  \___|   /_\_\  \__,_|  |_|_|_|  |_|__   _|_|_   \___|  
_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""| 
"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-' 

添加完毕后,Spring Boot 启动的时候会去加载这个文件,重新编译运行就可以看到效果。

mvn package 编译打包
mvn spring-boot:run 启动项目

在这里插入图片描述
虽然用处不大,但是看起来很炫酷,哈哈哈

结束

在本篇文章中,介绍了如何使用 Spring Boot 来搭建 Java Web 项目,通过 Maven 工具安装、打包和运行整个项目,项目构建完毕后,设置了自定义配置项,并在项目中使用配置信息,针对不同环境定制不同的配置项。并且提供一个简单的请求验证了项目的运行效果,最后为项目定制了一个 Banner。

以上为个人的学习使用心得,如有不对请指出,欢迎大家讨论。

猜你喜欢

转载自blog.csdn.net/m0_59420288/article/details/128177819