大佬文章
1. SpringBoot+MyBatis实现MD5加密数据库用户密码
5. spring-boot-stater-mail 发送邮件耗时过长问题
6. SpringBoot、Thymeleaf访问本地路径图片
7. SpringBoot集成redis+cookie实现分布式单点登录
一 引入依赖
<properties>
<java.version>11</java.version>
<springboot.version>2.7.12</springboot.version>
<mybatis-plus.version>3.5.1</mybatis-plus.version>
<mysql.version>8.0.32</mysql.version>
<logback.version>1.2.10</logback.version>
<aspectjweaver.version>1.9.19</aspectjweaver.version>
<fastjson.version>1.2.66</fastjson.version>
<commons.lang3.version>3.4</commons.lang3.version>
<commons.codec.version>1.9</commons.codec.version>
<commons.io.version>2.5</commons.io.version>
<kaptcha.version>2.3.2</kaptcha.version>
<hutool.version>5.8.15</hutool.version>
</properties>
<dependencies>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--Mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!--数据库-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>${mysql.version}</version>
<scope>runtime</scope>
</dependency>
<!--邮件发送-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>${springboot.version}</version>
</dependency>
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>${springboot.version}</version>
</dependency>
<!--日志版本-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<!--切面-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectjweaver.version}</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!--apache common-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons.lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons.codec.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<!--生成验证码-->
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
</dependency>
<!--数据校验-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!--引入Hutools工具-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
二 配置文件 application.properties和application.yaml
1. application.properties
#文件夹
project.folder=D:/MyWebServerData/WebCloud/
# log目录
log.root.level=debug
# 超级管理员id
admin.emails=1119362707@qq.com
# 是否开发环境
dev=false
# QQ 相关配置
qq.app.id=12333
qq.app.key=2222222
qq.url.authorization=https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=%s&redirect_uri=%s&state=%s
qq.url.access.token=https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&sclient_id=%s&client_secret=%s&code=%s&redirect_uri=%s
qq.url.openid=https://qraph.qg.com/oauth2.0/me?access token=%S
qq.url.user.info=https:/graph.qq.com/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s
qq.url.redirect=http://webcloud.shaocong.xyz/qqlogincalback
2. application.yaml
# 配置server
server:
port: 8080
servlet:
context-path: /disk
session:
timeout: 60m
spring:
# 配置数据项
datasource:
url: jdbc:mysql://localhost:3306/web_cloud?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
pool-name: 'HikariCPDatasource'
minimum-idle: 5
idle-timeout: 180000
maximum-pool-size: 10
auto-commit: true
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: SELECT 1
# 发送邮件
mail:
host: smtp.qq.com
port: 465
username: 1119362707@qq.com
password: huzfrliudwpnbahb
default-encoding: utf-8
properties:
mail:
smtp:
socketFactory.class: javax.net.ssl.SSLSocketFactory
debug: true
# 配置redis
redis:
database: 0
host: 127.0.0.1
port: 6379
jedis:
pool:
max-active: 20
max-wait: -1
max-idle: 10
min-idle: 0
timeout: 2000
#mybatis配置项
mybatis-plus:
global-config:
db-config:
id-type: assign_uuid
type-aliases-package: xyz.shaocong.webcloud.pojo