创建项目依赖(单体服务器):

Docker Compose Support

项目会自动创建一个名为compose.yaml的Docker Compose文件。在这个文件中,已经定义了以下服务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
services:
mysql:
image: 'mysql:latest'
environment:
- 'MYSQL_DATABASE=mydatabase'
- 'MYSQL_PASSWORD=secret'
- 'MYSQL_ROOT_PASSWORD=verysecret'
- 'MYSQL_USER=myuser'
ports:
- '3306:3306' # x:y x是宿主机端口,y是容器端口
rabbitmq:
image: 'rabbitmq:latest'
environment:
- 'RABBITMQ_DEFAULT_PASS=secret'
- 'RABBITMQ_DEFAULT_USER=myuser'
ports:
- '5672:5672'
redis:
image: 'redis:latest'
ports:
- '6379:6379'

services是一个列表,包含了所有的服务。每个服务都有一个名称,如mysql、rabbitmq、redis等。每个服务都有一个image属性,指定了服务的镜像。每个服务都有一个environment属性,指定了服务的环境变量。每个服务都有一个ports属性,指定了服务的端口。

  • mysql: mysql:latest 这是一个MySQL数据库的镜像
  • rabbitmq: rabbitmq:latest 这是一个RabbitMQ消息队列的镜像,用于异步消息处理
  • redis: redis:latest 这是一个Redis缓存的镜像,用于缓存数据

以这个映像为载体(核心)创建一个环境,然后在这个环境中运行应用程序。这样就可以在开发环境中运行应用程序,而不用担心环境的问题。

Lombok

Lombok是一个Java库,可以通过注解的方式来简化Java代码。在SpringBoot项目中,可以通过Lombok来简化实体类的编写。
详情链接:Lombok

Spring Boot DevTools

Spring Boot DevTools是一个开发工具,它可以提高开发人员的开发效率。它提供了一些开发工具,如自动重启、热部署等。
我暂时用不上

Spring Web

Spring Web是Spring框架的一个模块,它提供了一些Web开发的功能,如控制器、视图解析器等。
有了它,就可以在SpringBoot项目中开发Web应用程序。

JDBC API

Java Database Connectivity (JDBC) API是Java数据库连接的API,它提供了一些接口和类,用于连接数据库、执行SQL语句等。

Spring Data JPA

JPQL(Java Persistence Query Language),是一种面向对象的查询语言,它类似于SQL,但是更加面向对象。

Java Persistence API / Jakarta Persistence API
Spring Data JPA是Spring框架的一个模块,它提供了一些JPA的功能,如实体管理、事务管理等。

Rest Repositories

Rest Repositories是Spring框架的一个模块,它提供了一些RESTful风格的资源库,用于访问数据。

什么是REST风格? REST是一种软件架构风格,它是一种设计原则,用于构建分布式系统。RESTful是一种设计风格,用于构建RESTful风格的Web服务。RESTful风格的Web服务是一种基于HTTP协议的Web服务,它使用HTTP协议的方法来操作资源,如GET(查)、POST(增)、PUT(改)、DELETE(删)等。

Rest Repositories HAL Browser

Rest Repositories HAL Browser是一个RESTful风格的资源库,用于访问数据。

Spring Data Redis (Access+Driver)

Spring Data Redis是Spring框架的一个模块,它提供了一些Redis的功能,如连接Redis、操作Redis等。

MySQL Driver

MyBatis Framework

MyBatis Framework是一个持久层框架,它可以简化数据库操作,提高开发效率。

Quartz Scheduler

Quartz Scheduler是一个调度框架,它可以用于定时任务、异步任务等。

什么是cron表达式?
cron表达式是一种时间表达式,用于指定任务的执行时间。它由6个字段组成,分别表示秒、分、时、日、月、周。每个字段都有一个取值范围,如秒的取值范围是0-59,分的取值范围是0-59,时的取值范围是0-23,日的取值范围是1-31,月的取值范围是1-12,周的取值范围是0-6。cron表达式可以指定任务的执行时间,

例如:每天凌晨1点执行一次任务,可以使用0 0 1 * * ?

每天凌晨1点到2点之间每分钟执行一次任务,可以使用0 0-59 1 * * ?

每天凌晨1点到2点之间每5分钟执行一次任务,可以使用0 0/5 1 * * ?

Spring Security

Spring Security是Spring框架的一个模块,它提供了一些安全功能,如认证、授权等。

Java Mail Sender

Java Mail Sender是一个邮件发送工具,它可以用于发送邮件。

Thymeleaf是一个模板引擎,它可以用于生成HTML页面。结合Java Mail Sender,可以用于发送HTML邮件。

Spring for RabbitMQ

Spring for RabbitMQ是Spring框架的一个模块,它提供了一些RabbitMQ的功能,如连接RabbitMQ、操作RabbitMQ等。
RabbitMQ是一个消息队列,它可以用于异步消息处理。
实际案例:用户注册时,发送一封邮件给用户,告知用户注册成功,可以使用RabbitMQ来实现异步消息处理,队列里面存放用户注册的消息,消费者监听队列,当有消息时,发送邮件给用户。