【从零搭建SpringBoot3.x 项目脚手架】- 1. 工程初始化
创始人
2024-11-12 22:08:57
0

为什么会有这个系列文章

  1. 在项目开发中,大多项目依旧沿用的是 JDK 8 + Spring Boot 2.x 系列的技术栈,没有Spring Boot 3.x 的上手实践机会。
  2. 在个人学习探索 Spring Boot 3.x 的过程中,遇到多数第三方框架集成和问题排查的技术问题,搜索到都是零碎的、没有直接结果的回答,所以以此系列记录在 Spring Boot 3.x项目探索过程,搭建一个 web 项目的基础脚手架,供其他用到类似技术的同学参考。

技术选型

因为项目目前定义为单体且以简单易上手为主,所以采用的技术栈相对通用、易用,有其他需求的同学可留言,在有能力的情况下会进行集成 Demo.

技术栈版本
JDK21
Spring Boot3.2.5
PostgreSQL16
MyBatis Plus(ORM 框架)3.5.7
Redis(外置缓存)7
Redisson (Redis 高级客户端)3.25.0
SaToken(轻量鉴权框架)1.38.0
MapStruct(实体映射工具,非必需)1.5.5.Final

项目初始化

根据个人习惯,用生成器或 IDE 工具初始化项目,或创建 Maven 工程后手动添加依赖。
Spring 官方项目初始化工具 start.spring.io ,阿里云初始化工具 start.aliyun.com,网络环境不佳的同学可选择阿里云工具创建。

Spring 官方初始化工具示例

在这里插入图片描述

阿里云初始化工具示例

阿里云应用脚手架对每一项描述较为清晰,不多复述

在这里插入图片描述

IDE 工具示例(以 IDEA 为例)

在这里插入图片描述

项目结构

不同工具初始化目录结构可能略有差异

├─src │├─main │ ├─java │ │ └─com │ │   └─bootemp │ │     └─boot3 │ │       └─Boot3Application.java---- // 项目启动类 │ └─resources │   └─application.properties--------- // 项目默认配置文件 └─test------------------------------- // 单元测试  └─pom.xml------------------------------ // Maven 工程文件 

项目配置

项目结构规划

合适的项目结构有利于项目后期的维护,不同的项目结构适合不同的开发团队和开发习惯,仅个人习惯。

├─.gitignore ├─docs------------------------------ // 项目文档,如SQL、项目部署文档,UML等 ├─pom.xml └─src   └─main     └─java       └─cn         └─yiyanc           ├─common------------------ // 项目通用组件(工具类,常量等)           ├─config------------------ // 项目配置           ├─service------------------ // 业务逻辑处理           ├─infrastructur---------- // 项目基础设施,如ORM、缓存服务、消息队列等基础组件           ├─MainApplication.java---- // 项目启动类           └─trigger----------------- // 项目入口             ├─common             ├─http------------------ // http请求             ├─job------------------- // 任务             └─listener-------------- // 事件监听 

依赖版本配置

不同的项目初始化方式,支持、生成的依赖版本各有不同,在进行项目配置前,先统一版本信息。
编辑 pom.xml 文件

      4.0.0     com.bootemp     boot3     0.0.1     boot3     jar     从零搭建SpringBoot 3.x项目脚手架                            21         21         21         UTF-8         UTF-8                  3.2.5                  3.5.4.1         3.25.0         1.38.0         5.8.25                                                                   org.springframework.boot                 spring-boot-dependencies                 ${spring-boot.version}                 pom                 import                                                                org.springframework.boot             spring-boot-starter-web                               org.postgresql             postgresql             runtime                               org.projectlombok             lombok             true                               org.springframework.boot             spring-boot-starter-test             test                                          app                                                    org.apache.maven.plugins                 maven-compiler-plugin                 3.8.1                                      21                     21                     UTF-8                                              -parameters                                                                                              org.springframework.boot                 spring-boot-maven-plugin                                                           com.bootemp.boot3.MainApplication                                                                           org.projectlombok                             lombok                                                                                                                              repackage                                                      repackage                                                                                            

项目参数配置

spring boot 默认配置文件为 application.properties, 个人习惯使用 yml 格式。
配置文件规划:

  • application.yml - 系统通用配置文件,用于引导加载不同环境配置
    • application-local.yml - 本地开发环境配置文件,一般在 .gitignore 添加忽略,避免个人使用习惯“污染”项目配置
    • application-dev.yml - 开发环境配置文件
    • application-prod - 生产环境配置文件
      当前为演示项目,仅配置 application.ymlapplication-local.yml 文件,项目只进行最简配置,对特定参数如数据库连接池参数有要求等,请自行添加。

如环境配置中存在与 application.yml 相同配置会覆盖配置

application. yml
server:     port: 8080     servlet:       context-path: /boot3     shutdown: graceful      logging:     file:       path: ./logs     level:       com.bootemp: debug      spring:     application:       name: boot3     mvc:       pathmatch:         matching-strategy: ant_path_matcher     main:       banner-mode: off 
application-local. yml
spring:     datasource:       # 数据库驱动       driver-class-name: org.postgresql.Driver       # 数据库连接地址       url: jdbc:postgresql://127.0.0.1:5432/boot3       # 数据库用户名       username: postgres       # 数据库密码       password: postgres 
测试 Controller
package com.bootemp.boot3.trigger.controller;  import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;  @RestController public class HelloController {  	@GetMapping("/") 	public String hello() { 		return "Hello, SpringBoot 3.2.5!"; 	} } 

启动项目,基础配置完成

访问测试接口

在这里插入图片描述

最后项目结构

├─logs ├─pom.xml └─src   ├─main   │ ├─java   │ │ └─com   │ │   └─bootemp   │ │     └─boot3   │ │       ├─common   │ │       ├─config   │ │       ├─infrastructur   │ │       ├─MainApplication.java   │ │       ├─service   │ │       └─trigger   │ │         ├─controller   │ │         │ └─HelloController.java   │ │         ├─job   │ │         └─listener   │ └─resources   │   ├─application-local.yml   │   └─application.yml   └─test 

相关内容

热门资讯

办法辅助!来来云南辅助(辅助挂... 办法辅助!来来云南辅助(辅助挂)都是真的是有辅助器(果真有挂)1、起透看视 来来云南辅助辅助软件价格...
机巧辅助!微信小程序边锋辅助(... 机巧辅助!微信小程序边锋辅助(辅助挂)真是真的是有辅助插件(有挂解惑)1、进入到微信小程序边锋辅助是...
攻略辅助!蜀山四川小程序脚本(... 攻略辅助!蜀山四川小程序脚本(辅助挂)切实真的是有辅助插件(有挂辅助)1、完成蜀山四川小程序脚本辅助...
妙招辅助!大头大菠萝辅助(辅助... 妙招辅助!大头大菠萝辅助(辅助挂)一直确实有辅助方法(详细教程)1、大头大菠萝辅助免费脚本咨询教程、...
模块辅助!哈局透视辅助(辅助挂... 模块辅助!哈局透视辅助(辅助挂)果然真的是有辅助挂(有挂详细)1、玩家可以在哈局透视辅助透视最简单三...
机巧辅助!小松宿松游戏辅助(辅... 机巧辅助!小松宿松游戏辅助(辅助挂)一直是真的有辅助神器(的确有挂)1、打开软件启动之后找到中间准星...
教程书辅助!hh poker有... 教程书辅助!hh poker有没有辅助软件(辅助挂)原来确实有辅助软件(有挂透明挂)hh poker...
法门辅助!天天贵阳破解版(辅助... 法门辅助!天天贵阳破解版(辅助挂)好像确实有辅助脚本(揭秘有挂)所有人都在同一条线上,像星星一样排成...
绝活儿辅助!四川麻将血战到底辅... 绝活儿辅助!四川麻将血战到底辅助器(辅助挂)真是是有辅助工具(有挂实锤)1、下载好四川麻将血战到底辅...
绝活辅助!潮汕汇木虱辅助下载(... 绝活辅助!潮汕汇木虱辅助下载(辅助挂)都是存在有辅助神器(真实有挂)1、实时潮汕汇木虱辅助下载透视辅...