Springboot3.x工程创建及必要引用(基础篇)

devtools/2025/1/12 0:27:51/

下面从环境的安装和配置开始,到Springboot3.x工程创建,记录一下让完全没有基础的小白用户也能够开始自己的第一个项目。

准备
  • 安装JDK环境(这里最好安装JDK17及以上版本)
  • 安装IntelliJ IDEA Ultimate工具(可以从官网下载自己对应的版本进行安装即可)
    IDEA官网:https://www.jetbrains.com.cn/idea/download
  • 本机maven配置,便于后面项目及包的引用
JDK环境配置

下载JDK安装包

https://www.oracle.com/cn/java/technologies/downloads/https://download.oracle.com/java/23/latest/jdk-23_linux-x64_bin.tar.gz//macOS直接下载dmg安装
https://download.oracle.com/java/23/latest/jdk-23_macos-x64_bin.dmg

解压缩到对应的目录

tar -zxvf jdk-23_linux-x64_bin.tar.gz -C /usr/local/

配置环境变量

export JAVA_HOME=/usr/local/jdk-23.0.1
export PATH=$JAVA_HOME/bin:$PATH

刷新环境

source .zprofile
或 
source .zshrc

验证

java --version
本机Maven配置

maven仓库安装

请参考我前面写的《Linux环境搭建maven私有仓库Nexus》这篇文章

工程关联maven本地环境配置

  1. 首先从官网下载一个maven本地部署包(这里部署apache-maven-3.9.9-bin.tar.gz)
    官网地址:https://maven.apache.org/download.cgi

    https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
    
  2. 解压缩并配置环境变量

    //解压
    tar -zxvf apache-maven-3.9.9-bin.tar.gz
    //配置环境变量
    export M2_HOME=xxxx/apache-maven-3.9.9
    export PATH=$PATH:$M2_HOME/bin
    
  3. maven安装包的账号及私有代理仓库配置

    在maven根目录/conf/setting.xml配置nexus账号
    ide下maven也同步添加以下配置

    <servers><server><id>nexus</id><username>nexus用户名</username><password>nexus账号</password></server>
    </servers>
    
    <mirrors><mirror><id>引用仓库id,与spring工程中的私有仓库id对应</id><mirrorOf>*</mirrorOf><name>仓库名称</name><url>https://xxxxx/repository/cloud-group/</url></mirror>
    </mirrors>
    
新建工程(以llama-apis为例)
  1. 创建项目
    在这里插入图片描述
  2. 修改SpringBoot版本为3.2.10
    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><!--https://spring.io/projects/spring-boot#learn--><version>3.2.10</version><relativePath/>
    </parent>
    
  3. 移除工程不必要的配置项
    <url/>
    <licenses><license/>
    </licenses>
    <developers><developer/>
    </developers>
    <scm><connection/><developerConnection/><tag/><url/>
    </scm>#测试包是否需要移除看自己需要,是否需要写相关测试用例
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
    </dependency>
    
  4. 添加构建后产物为jar方式
    <packaging>jar</packaging>
    
  5. 配置jdk、构建和编译版本
    <properties><java.version>17</java.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><spring.boot.version>3.2.10</spring.boot.version>
    </properties>
    
  6. 添加maven私有代理仓库引用
    <repositories><repository><!--这里id最好与前面本地setting.xml中的仓库id对应--><id>cloud-group</id><!--这里可以换成自己的仓库地址--><url>https://mvn.geease.com/repository/cloud-group/</url></repository>
    </repositories>
    
  7. 使用Spring相关注解时消除警告的依赖包【可选】
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
    </dependency>
    
  8. lombok实体、对象编译期生成依赖包【可选】
    <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version><scope>provided</scope>
    </dependency>
    
  9. 添加pom工程maven打包分发配置【可选,如果不涉及pom工程打包可以不配置】
    <!--下面对应的id和地址换成自己的即可-->
    <distributionManagement><repository><id>nexus</id><name>releases</name><url>https://mvn.geease.com/repository/basejars/</url><uniqueVersion>true</uniqueVersion></repository><snapshotRepository><id>nexus</id><name>snapshots</name><url>https://mvn.geease.com/repository/basejars/</url></snapshotRepository>
    </distributionManagement>
    
  10. Spring Cloud依赖配置
    <!--如果项目中用到了spring cloud相关依赖包最好添加这个配置-->
    <dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2023.0.1</version><type>pom</type><scope>import</scope></dependency></dependencies>
    </dependencyManagement>
    
  11. 工程pom.xml build节点配置
    <build><!--工程构建后包的名称--><finalName>llama-apis</finalName><!--哪些资源需要打包到最终包里面--><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><filtering>true</filtering><includes><include>**/*.*</include></includes></resource></resources><plugins><!--编译插件,配置项目编译之前提前生成lombok相关对象--><plugin><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>UTF-8</encoding><annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></path></annotationProcessorPaths></configuration></plugin><!--maven打包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring.boot.version}</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins>
    </build>
    
application.yml应用程序配置文件修改
  1. 将默认的application.properties修改成application.yml
  2. 设置服务端口和路径
    server:port: 8080servlet:context-path: /
    
  3. 区分环境配置【可选,根据项目需要】
    spring:profiles:#根据设置的标识加载对应的配置文件(比如这里加载的就是application-dev.yml),#其中application-<标识>.yml这个格式是固定的。#那么工程启动后加载的顺序即为application.yml ——> application-dev.ymlactive: dev
    
    在这里插入图片描述

好了到这里你已经创建了一个比较干净的工程项目,在这个基础上你可以逐渐开始你的业务开发了。


http://www.ppmy.cn/devtools/149733.html

相关文章

第37周:咖啡豆识别 (Tensorflow实战第七周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 可视化数据 2.3 配置数据集 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 3.2.1 直接调用官方 3.2.2 自建模型 四、编译 4.1 设置动态学习率 五、模型训…

基于Qt的OFD阅读器开发原理与实践

摘要 本文详细探讨了基于Qt开发OFD阅读器的原理与实践。通过解析OFD文件格式、构建文档结构、实现页面渲染、处理用户交互以及进行性能优化&#xff0c;本文展示了如何使用Qt框架开发一个功能强大、性能优异的OFD阅读器。文章还提供了示例代码和未来发展方向&#xff0c;为开发…

Qt天气预报系统鼠标拖动窗口

Qt天气预报系统 1、鼠标拖动窗口1.1重写鼠标移动函数1.2添加定义1.3定义一个偏移值1.4判断鼠标左键是否被按下1.5计算当前鼠标位置与窗口左上角位置的偏移值1.6移动窗口 2、.h文件和.cpp文件2.1 .h文件2.2 .cpp文件 3、结论 1、鼠标拖动窗口 1.1重写鼠标移动函数 protected:v…

新冠肺炎服务预约微信小程序的设计与实现ssm+论文源码调试讲解

第4章 系统设计 4.1 系统设计的原则 在系统设计过程中&#xff0c;也需要遵循相应的设计原则&#xff0c;这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性&#xff0c;安全性&#xff0c;可定制化&#xff0c;可扩展性&#xff0c;可…

springCloudGateWay使用总结

1、什么是网关 功能: ①身份认证、权限验证 ②服务器路由、负载均衡 ③请求限流 2、gateway搭建 2.1、创建一个空项目 2.2、引入依赖 2.3、加配置 3、断言工厂 4、过滤工厂 5、全局过滤器 6、跨域问题

智慧公厕大数据驱动下的公共卫生管理与优化

在快速发展的城市化进程中&#xff0c;公共卫生问题日益凸显&#xff0c;成为城市管理的重要议题。智慧公厕&#xff0c;作为公共卫生设施的一次革命性创新&#xff0c;正借助物联网技术的东风&#xff0c;引领公共卫生进入一个全新的生态时代。本文将深入探讨智慧公厕如何利用…

C语言:枚举类型

一、枚举类型的声明 枚举顾名思义就是一一列举。我们可以把可能的取值一一列举。比如我们现实生活中&#xff1a; 星期一到星期日是有限的7天&#xff0c;可以一一列举 &#xff1b;性别有&#xff1a;男、女、保密&#xff0c;也可以一一列举 &#xff1b;月份有12个月&#x…

Elixir语言的语法糖

Elixir语言的语法糖 引言 Elixir语言作为一种功能强大且灵活的编程语言&#xff0c;近年来在开源社区中产生了不小的影响。它被广泛应用于构建高并发、高可用性的应用程序&#xff0c;特别是在分布式系统和实时应用方面。不过&#xff0c;Elixir之所以受欢迎&#xff0c;除了…