一、maven项目环境搭建

每次创建项目时,都要借鉴已有的项目依赖和配置文件进行创建,依赖用于什么功能的,以及配置文件作用于哪些依赖的,都云里雾里的。为此,写一个通用的环境搭建的博客就方便我创建新项目,需要引入什么常见依赖就看看这篇博客,顺便看看依赖之间的关系和配置文件的使用,(●’◡’●)。

1.1 SpringBoot依赖

以maven创建的项目为例,仅需基础springboot父工程,然后引入启动器和测试依赖即可。

注意:springboot父工程定义了很多需要使用的依赖版本,故部分依赖版本号无需手动指定。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<parent>
<!--继承springboot父工程-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.5</version>
</parent>
<dependencies>
<dependency>
<!--web启动器依赖-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<!--测试依赖,包含了常用测试框架和工具,如Junit, SpringTest等-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>

1.2 Mysql环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- 数据库相关配置启动器,是spring Boot 操作数据库的基础模块, 包含Jdbctemplate-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- druid连接池的依赖 (如果要替换mysql默认连接池的话可以加) -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.20</version>
</dependency>
<!-- 连接 MySQL 所需驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>

相关配置文件设置

1
2
3
4
5
6
7
8
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 使用druid连接池
druid:
url: jdbc:mysql://localhost:3306/steel
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver

1.3 Mybatis依赖

二选一即可正常使用

1
2
3
4
5
6
7
8
9
10
11
12
13
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.1</version>
</dependency>
<!--MyBatis Plus 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>

相关配置文件设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# mybatis配置, 彻底抛弃mybatis-config.xml文件
mybatis:
mapper-locations: classpath:/mapper/*.xml #指定mapper的xml文件的位置
type-aliases-package: com.ldy.bean #设置包下实体类别名为类名,无需全类名
configuration: # setting设置
auto-mapping-behavior: full #自动映射,full表示可以嵌套映射
map-underscore-to-camel-case: true #开启驼峰式命名法
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #开启日志输出

logging:
level:
com.ldy.mapper: debug # 如果在控制台想看到sql语句执行的日志,那么就配置mapper接口所在包日志级别为debug
org.springframework.transaction: debug #如果想看事务开始、提交、回滚等信息,可以设置这个
org.mybatis: debug #可以看到 MyBatis 内部行为细节,比如如何解析 SQL、如何映射结果集等

1.4 工具类依赖

经常用到的工具类依赖

1
2
3
4
5
6
<!-- lombok依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.28</version>
</dependency>

1.5 Mongdb依赖

1
2
3
4
5
<!--Mongodb依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

配置文件

1
2
3
4
5
6
spring:
data:
mongodb:
host: 127.0.0.1
database: articledb
port: 27017

二、Docker部署中间件

2.1 部署redis(8.4版本,windows环境)+ 挂载配置文件

2.1.1 配置文件配置

配置文件下载官网(使用什么版本的容器,就下什么版本):Index of /releases/

下载好之后,解压缩并复制其中的redis.conf文件到你要挂载配置文件的目录中。这里我创建了两个目录,一个存放配置文件,一个存放持久化文件,毕竟redis里的重要内容就是配置和数据。

image-20251217140607645

2.1.2 部署

这里我在windows环境下,通过wsl部署的redis。命令如下,挂载的目录以自己的环境为准。

1
2
3
4
5
6
7
docker run -d \
--name redis8.4 \
-p 6379:6379 \
-v /mnt/e/docker/redis/conf:/usr/local/etc/redis \
-v /mnt/e/docker/redis/data:/data \
redis \
redis-server /usr/local/etc/redis/redis.conf
命令 解释
-v /mnt/e/docker/redis/conf:/usr/local/etc/redis 挂载/usr/local/etc/redis目录到e盘的docker/reids/conf目录下
-v /mnt/e/docker/redis/data:/data \ 将/data目录挂载到e盘的docker/redis/data目录下。特别注意,这个data是存放持久化文件的。所以要在redis.conf中,修改工作目录dir ./ 为 dir /data。这样子,持久化文件才会正确放置到该目录中。
redis-server /usr/local/etc/redis/redis.conf redis启动时,使用/usr/local/etc/redis/redis.conf这个配置文件,这个路径是相对于容器来说的。由于挂载,实际上使用的是e盘的docker/reids/conf目录下的redis.conf文件

特别注意,将redis的配置文件和持久化文件目录进行挂载时,填入的文件路径以wsl环境为准!wsl中,windows环境放在/mnt目录中!

2.2 部署RabbitMQ

2.2.2 创建插件存放目录

如下图所示

image-20251224101421065

2.2.2 部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//windows环境
docker run \
-e RABBITMQ_DEFAULT_USER=ldy \
-e RABBITMQ_DEFAULT_PASS=123456 \
--name rabbitmq \
--hostname rabbitmq \
-p 15672:15672 \
-p 5672:5672 \
-d \
rabbitmq:3.8-management
//一整行,cmd复制即可
docker run -e RABBITMQ_DEFAULT_USER=ldy -e RABBITMQ_DEFAULT_PASS=123456 --name rabbitmq --hostname rabbitmq -p 15672:15672 -p 5672:5672 -d rabbitmq:3.8-management

//linux环境
docker run \
-e RABBITMQ_DEFAULT_USER=itheima \
-e RABBITMQ_DEFAULT_PASS=123321 \
-v mq-plugins:/plugins \
--name mq \
--hostname mq \
-p 15672:15672 \
-p 5672:5672 \
--network hm-net\
-d \
rabbitmq:3.8-management
  • -e RABBITMQ_DEFAULT_USER=itheima:设置默认用户名

  • -e RABBITMQ_DEFAULT_PASS=123321:设置默认密码

  • --name mq:容器命名为 mq

  • --hostname mq:容器内部主机名设为 mq

注意:rabbitmq部署到window的目录时,会报错,无法挂载,所以我们只能在windows里添加好插件之后,通过docker cp 命令手动将插件复制到rabbitmq的plugins目录里。

1
docker cp 本地插件地址 <rabbitmq容器名>:/plugins/

2.2.3 插件安装

以延迟消息的插件为例,插件下载地址Releases · rabbitmq/rabbitmq-delayed-message-exchange

注意下载的版本和docker的rabbitmq容器的版本一致。

image-20251224112040741

下载完成并移动到windows的plugins目录之后,使用命令

1
docker cp /mnt/e/docker/rabbitmq/plugins/rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez rabbitmq:/plugins/

之后就会发现这个插件被存放到了/opt/rabbitmq/plugins目录下面,而不是/plugins目录,因为在rabbitmq容器里,plugins是一个符号链接

image-20251224112827109

但是,就算windows下,将这个目录下的插件都复制到plugins文件夹,然后挂载,也还是会报错,所以windows环境还是只能使用docker cp命令来实现插件的新增。

linux环境直接将插件复制到挂载目录即可。

挂载完成之后,我们还需要手动启用插件,命令如下

1
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_delayed_message_exchange

image-20251224113719728

2.3 部署ElasticSearch