SpringBoot工程初始搭建过程全纪录
【摘要】 SpringBoot工程初始搭建过程全纪录,对第三方依赖的每一个版本号进行了仔细研究。
目录
一、确定版本号
SpringBoot、SpringCloud、SpringCloud Alibaba皆选用官网最稳定,最新版本。
SpringCloud
官网地址:Spring Cloud

SpringCloud alibaba
官网地址:Spring Cloud Alibaba

SpringBoot
官网地址:Spring Boot

SpringBoot选用2.3.12.RELEASE的原因是:SpringCloud Hoxton.SR12版本推荐使用 2.3.12.RELEASE版本。
二、搭建整个工程
父项目的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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tfjybj</groupId>
<artifactId>daily</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modules>
<module>daily-statistics</module>
</modules>
<!-- 统一管理jar包版本 -->
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring.boot.version>2.3.12.RELEASE</spring.boot.version>
<spring.cloud.version>Hoxton.SR12</spring.cloud.version>
<spring.cloud.alibaba.version>2.1.2.RELEASE</spring.cloud.alibaba.version>
<mysql.version>8.0.16</mysql.version>
<druid.version>1.2.6</druid.version>
<swagger.version>2.9.2</swagger.version>
<lombok.version>1.18.8</lombok.version>
<xxl-job.version>2.2.0</xxl-job.version>
<fastjson.version>1.2.58</fastjson.version>
</properties>
<!-- 子模块继承之后,提供作用:锁定版本+子modlue不用写groupId和version -->
<!--在父工程pom文件中声明依赖,但不引入,父项目声明,供子项目按需引入-->
<dependencyManagement>
<dependencies>
<!--spring boot,spring cloud,spring cloud alibaba-->
<!--选用官网稳定的版本-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--swagger生成API文档-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--fastjson的依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!--lombok的依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--所有声明在父项目 dependencies 中的依赖都会自动引入,并默认被所有子项目继承-->
<!--即使在子项目中不引入该依赖,那么子项目依然会从父项目中继承该依赖项。-->
<dependencies>
</dependencies>
</project>

子模块的依赖
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>daily</artifactId>
<groupId>com.tfjybj</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>daily-statistics</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- nacos服务注册/发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--nacos配置中心来做配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--重复依赖,但是没有找到在哪里-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-jdbc</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--mysql:Maven使用频率较高-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<!--swagger生成API文档-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<!--lombok的依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--json格式转换-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.0.2</version>
</dependency>
</dependencies>
<!--用于项目打包,打包需要的插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.12.RELEASE</version>
</plugin>
</plugins>
</build>
</project>

三、其他环境、依赖项
JDK使用1.8、数据库使用MySQL、集成开发环境使用IDEA。
mysql的依赖使用:8.0.16
Maven使用频率较高:

druid的依赖使用:1.2.6
druid与druid-spring-boot-starter 的区别 作用是一样的,都是连接池提供连接,里边的配置参数都是一样的;
druid-spring-boot-starter只是在druid基础上进行了一次封装,专门用来整合spring-boot项目; 如果springboot项目想使用druid也是可以的,但是需要手动编写配置类并注入到bean中,并加载对应的配置参数;
但是不建议,明明有现成封装好的jar,就直接使用就好了!!!
连接数据库的配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://d-mysql.tech/daily_dev?autoReconnect=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai #&allowMultiQueries=true
username: admin
password: admin
filter:
config:
enabled: true #数据库过滤器是否开启
connect-properties:
druid.statmergeSql: true #打开mergeSql功能
druid.stat.slowSqlMillis: 5000 #慢SQL记录
config.decrypt: false #是否解密
config.decrypt.key: ${custom.publicKey} #解密的公钥
jpa:
hibernate:
# 实体类发生改变,数据表会更新
ddl-auto: update
# 操作实体对象的时候,会跟我们生成sql语句: false 不生成sql语句:
show-sql: true

其他依赖的版本号:没有仔细研究,使用我们其他项目中常用的。其实也可以直接去Maven官网上找。https://mvnrepository.com/
这个项目的初始搭建过程,大概就这些。如有表达不清楚的,可以私聊我。
使用到了nacos,配置过程请见博客:
使用到了xxljob,配置过程请见博客:
SpringBoot项目集成xxljob全纪录(图文详解)_小小张自由—>张有博-CSDN博客
如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。
推荐

华为开发者空间发布
让每位开发者拥有一台云主机
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)