特别说明:本次项目整合基于idea进行的,如果使用Eclipse可能操作会略有不同,不过总的来说不影响。
springboot整合之如何选择版本及项目搭建
**springboot整合之版本号统一管理 **
springboot整合mybatis-plus+durid数据库连接池
springboot整合swagger
springboot整合mybatis代码快速生成
springboot整合之统一结果返回
springboot整合之统一异常处理
springboot整合之Validated参数校验
springboot整合之logback日志配置
springboot整合pagehelper分页
springboot整合本地缓存
springboot整合redis + redisson
springboot整合elasticsearch
springboot整合rabbitMq
springboot整合canal
springboot整合springSecurity(前后端不分离版本)
做了几年开发了,最近打算把之前积累的一些知识沉淀一下,想了一下,就先从最基础的springboot的使用开始整理吧。打算把常用的一些东西整合进来。
可能有些小伙伴对版本选择和项目的搭建还不是特别清晰,所以我就把这个单独列出来说一下,以防后面整合过程中出现未知问题。OK,接下来我们就进入正题。开始正式搭建我们的springboot项目。
一、springboot的版本选择
关于版本选择,我的理解是:如果不是学习,那我建议最好选择稳定版本,也就是官方release版本。我的习惯是一般是最新版本再往前推一个版本。比如目前是springboot 3.0 ,但是这个springboot 3.0要求JDK17 起步,好家伙这玩意谁敢上正式。我觉得如果偏向新版本还是2.7X保险一点。但是我个人比较喜欢选择带release的版本,而且后面整合spring cloud Alibaba 需要使用2.3.X所以我决定选择2.3.12.RELEASE版本。
另外一种选择版本的方式就是如果是在微服务中需要配合微服务版本来使用。这里可以先简单提一下。这个要根据微服务的版本来定,比如说alibaba最新版本配套的springcloud版本为H版的SR12,springboot版本为2.3.12.RELEASE。所以我们在进行版本选择时一定要特别注意。
二、项目初始化
首先选择“file” -->"New" -->点击"project",进行项目新建。
进入到新建页面后我们可以通过选择Spring Initializr 进行项目的初始化,也可以选择maven进行项目初始化。这里给出个人建议,如果是单独的就一个项目选择这个会比较方便点。
如果是子模块建议选择maven,因为选择maven会自动以来父级(这里不明白可以先不用考虑,后面会有springcloud的整合,会在那里进行详细说明。)
选择完成后点击“Next”进入下一个环节
这里我选择了热加载和Lombok。关于这个Lombok我觉得需要特别说明一下,首先就是这个需要自己在插件市场安装一下Lombok的插件。(这个很简单,我就不做介绍了)
目前对这个插件主要有两种说法,一种是像我一样的觉得这个插件使用起来很方便,毕竟只要协商一个注解,我们自己就不用写get和set以及构造函数很多常用的又简单的代码了我觉得能够节省我们很多时间。方便,好用。还有一种就是:这个插件虽然方便了,但是在多人或者多个团队共同开发时大家都需要安装这个插件,如果不安装项目就会报错无法运行。觉得增加了额外的操作和不必要的麻烦。这个我觉得大家开发时自行斟酌吧。结合实际需求来就行。
项目创建完成以后我们需要在setting页面配置一下自己的Maven
配置完成以后,我们可以删除以下几个没用的目录和文件。
检查JDK版本
不知道为什么,这个之前选择了JDK8但是项目建好以后还是出现JDK不是8的问题,所以可以在这里再次统一修改一下。一共有两个地方需要修改。
三、修改pom文件
接下来就是pom文件修改,因为之前没有引入文本依赖,所以我们要在pom里面引入spring-boot-starter-web的依赖。整体pom文件如下
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--spring-boot 依赖版本-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
</parent>
<!--当前项目坐标-->
<groupId>com.example</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-demo</name>
<description>springboot-demo</description>
<!--版本依赖管理-->
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<!--spring-boot-starter 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--spring-boot-starter-web 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--热启动依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!--lombok 依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--spring-boot-starter-test 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
四、启动测试
到此为止我们的项目算是初步搭建完成了,接下来就是启动测试一下了。在框架搭建的过程中一定要做一步测异步,不要一次整合很多东西不进行测试,否则对于新手来说很容易出问题,而且你不好排除问题是哪里产生的。
可以看到项目已经正常启动了。
五、修改yml文件
首先调整成如下设置,然后我们来解释一下为什么要这样配置。我们在开发中难免有很多环境比如开发环境、测试环境、生产环境等。所以我们可以分为多个配置文件,然后只需要设置当前使用那个文件就好了。而springboot也给我们提供了这个功能,就是spring.profiles.active 我们可以通过这个设置来确定使用那个配置文件。
其中application.yml内容如下:
server:
port: 8080
spring:
profiles:
active: dev
OK,到这一步我们的项目就算初步搭建完成了,下面几篇会慢慢的都写完。
如果文章对你有所帮助的话,可以点赞关注一下,后面会陆续把所有的都整合完毕~
版权归原作者 极速小乌龟 所有, 如有侵权,请联系我们删除。