当前位置: 首页 > article >正文

Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目

有道无术,术尚可求,有术无道,止于术。

本系列Spring Boot版本3.0.3

源码地址:https://gitee.com/pearl-organization/study-spring-boot3

文章目录
    • 前言
    • 安装JDK 17
    • 创建Spring Boot 项目
      • 方式1:网页在线生成
      • 方式2:使用IDEA
    • 项目结构
      • Maven Wrapper
      • pom.xml
      • java目录
      • resources目录
      • test目录

前言

本篇主要介绍使用spring initializr 快速创建一个Spring Boot 3.0项目以及工程结构说明。

安装JDK 17

Oracle JDK 17 发布地址
Oracle JDK 17 下载地址

OpenJDK 17 发布地址
OpenJDK 17 下载地址

Spring Boot 3.0需要Java 17作为最低版本。如果当前正在使用Java 8Java 11,在开发Spring Boot 3.0应用程序之前,需要升级JDK

相信很多人现在都还是用的JDK 8,使用Spring Boot 3.0的话,还是很有必要去熟悉每个版本JAVA的增强特性,后续会出专栏详细介绍每个版本的变化,而Java 17的相对上一版本的JEPJDK增强提案)如下:

306:	Restore Always-Strict Floating-Point Semantics # 恢复始终严格模式(Always-Strict)的浮点语义
356:	Enhanced Pseudo-Random Number Generators # 增强型伪随机数生成器
382:	New macOS Rendering Pipeline # 新增macOS渲染管道
391:	macOS/AArch64 Port # 支持将JDK移植到macOS或AArch64
398:	Deprecate the Applet API for Removal # 移除过时的Applet API
403:	Strongly Encapsulate JDK Internals # 强封装JDK内部API
406:	Pattern Matching for switch (Preview) # switch 匹配模式(预览版本)
407:	Remove RMI Activation # 移除RMI(远程方法调用)激活机制
409:	Sealed Classes # 密封类 
410:	Remove the Experimental AOT and JIT Compiler # 移除实验性AOT和JIT编译器
411:	Deprecate the Security Manager for Removal # 弃用待移除的安全管理器(Security Manager)
412:	Foreign Function & Memory API (Incubator) # 外部函数和内存API(孵化器)孵化阶段
414:	Vector API (Second Incubator) # Vector API第二孵化阶段
415:	Context-Specific Deserialization Filters #上下文特定的反序列化过滤器

这里就不介绍下载安装的方法了,相信懂的都懂???

创建Spring Boot 项目

Spring Initializr 是官方提供的一个用来初始化一个Spring boot 项目的工具,不仅完美支持IDEAEclipse,而且能自动生成启动类和单元测试代码,给开发人员带来极大的便利。

方式1:网页在线生成

打开Spring Initializr官方页面,可以在网页在线生成Spring Boot项目代码,整个页面主要分三大部分:
在这里插入图片描述
在最左边,填写项目信息,说明如下:

  • Project:项目构建工具,可以选择GradleMavenSpring自己所有的项目都是使用Gradle
  • Language:选择开发语言
  • Spring Boot:选择Spring Boot版本
  • Project Metadata:项目信息
    • Group:项目组织
    • Artifact:项目唯一标识符
    • Name:项目名称
    • Description:项目描述
    • Package name:包名
    • Packaging:打包方式
    • JavaJDK版本

最右边点击添加依赖可以选择项目需要的依赖包:
在这里插入图片描述
在最下方,分别是生成、预览、分享功能,点击生成后,代码自动下载到本地,然后使用开发工具导入就可以了~
在这里插入图片描述

方式2:使用IDEA

IDEAEclipse继集成了Spring Initializr,可以直接在开发工具中创建工程,一般都是使用该方式。

首先创建一个工程模块
在这里插入图片描述
选择Spring Initializr 来初始化项目:
在这里插入图片描述
然后填写项目信息,比如模块名、构建工具等:
在这里插入图片描述

接着下一步选择Spring Boot版本、添加依赖:
在这里插入图片描述
点击Next,核对模块名、模块位置是否正确:
在这里插入图片描述
点击Finish,很快项目就自动创建好了:
在这里插入图片描述

项目结构

接下来,我们了解下生成项目的各个目录和文件。

├── .mvn
│   └── wrapper
│       ├── maven-wrapper.jar
│       └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   └── resources
    └── test
        ├── java
        └── resources
Maven Wrapper

安装好Maven后,可以使用mvn命令进行编译打包,项目中直接使用当前系统的Maven环境,这种方式存在一个问题,如果没有安装Maven,或者下载别人的项目和自身本地Maven环境版本不兼容时,就得重新安装Maven

为了解决上述问题,每个项目可以指定其本身所依赖的独立Maven环境,简单来说,就是给该项目装一个单独的Maven,只作用于本项目,这就是Maven Wrapper

.mvnmvnwmvnw.cmd这几个文件都属于Maven Wrapper.mvn存放Maven Wrapper安装文件、配置;mvnwmvnw.cmdLinuxWindows系统执行相关Maven命令的脚本。

一般也用不到,所以可以直接删除这几个文件:
在这里插入图片描述

pom.xml

pom.xml应该都比较熟悉了,Maven配置文件,用以描述项目的各种信息,主要看下Spring Boot生成的相关内容。

首先是parent,继承了Spring Boot提供的父 POM ,在spring-boot-starter-parent中又继承了spring-boot-dependencies。在spring-boot-dependencies中,定义了很多依赖包的版本。

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

接着是dependencies声明项目本身所需要的依赖,因为spring-boot-dependencies中已定义好很多版本,所以常用的不需要写版本号,在实际开发时,尽量使用Spring Boot已定义好的版本,因为这些是进行了版本兼容测试的。

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

build构建模块中,添加了官方提供的Maven插件spring-boot-maven-plugin,提供了构建Docker镜像、打包为可执行JAR包等功能。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

相关命令如下所示:
在这里插入图片描述

java目录

java目录存放源代码文件:
在这里插入图片描述
自动生成了创建了一个启动类,该类是程序启动的入口,运行main方法程序启动,@SpringBootApplication是启动类核心注解,标记当前类为启动类,启动时,会从该注解中获取很多当前程序信息,后面会进行源码解读。

@SpringBootApplication
public class SpringBoot3BaseDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBoot3BaseDemoApplication.class, args);
    }
}
resources目录

resources 目录来存放一些资源文件,其中最重要的是application.properties,所有Spring Boot应用的配置都写在这里,static存放静态资源,比如cssjs等,templates用于存放模板文件。
在这里插入图片描述

test目录

test是进行单元测试的目录
在这里插入图片描述


http://www.kler.cn/a/564263.html

相关文章:

  • C++11智能指针
  • Idea 中 Project Structure简介
  • 排序算法学习笔记
  • 笔记一:字符函数和字符串函数
  • 小白向-用python实现选择排序
  • 想知道两轮差速方形底盘 URDF 咋做,ROS2 配 Rviz 咋显示吗?看这里!
  • Eureka的缓存原理分析
  • AI顿悟之旅 - 1 - DeepSeek的训练方法为什么相比GPT-o1大幅度减少算力资源?
  • Paperless-ngx文档管理系统本地部署
  • YOLOv5白皮书-第Y1周:调用官方权重进行检测
  • 轮式机器人在复杂地形中如何选择合适的全局路径规划算法?
  • 一、IDE集成DeepSeek保姆级教学(安装篇)
  • GPT1 与 GPT2 的异同
  • 鸿蒙新版开发工具DevEco Studio不能新建模拟的解决方法
  • 介绍下pdf打印工具类 JasperPrint
  • 【LeetCode】148. 排序链表
  • Spark Streaming是如何实现实时大数据处理的
  • path.join和path.resolve说明
  • Redis主从架构+使用sentinel实现主从架构高可用
  • 如何判断数据是否使用AES加密以及如何使用AES解密