博客后台管理系统
初步规划
系统功能规划
一个完整的博客后台管理系统,通常需要具备以下核心功能:
用户管理
- 用户注册/登录:支持普通用户和管理员用户注册和登录。
- 用户信息管理:支持用户信息的查看、编辑、删除。
- 角色管理:支持用户角色(如普通用户、管理员)的定义和分配。
- 权限管理:支持基于角色的权限控制,不同角色拥有不同的操作权限。
博客文章管理
- 文章发布/编辑/删除:支持博客文章的创建、编辑和删除。
- 文章分类/标签管理:支持文章的分类和标签的创建、编辑和删除。
- 文章列表:支持文章列表的展示和分页查询。
- 文章详情:支持文章详情的展示。
- 文章审核:支持文章的审核和发布控制。
评论管理
- 评论查看:支持评论列表的展示和分页查询。
- 评论审核:支持评论的审核和发布控制。
- 评论删除:支持评论的删除。
系统设置
- 站点设置:支持站点名称、logo、备案号等基本信息的设置。
- 主题设置:支持博客主题的切换(可选)。
数据统计
- 文章统计:统计文章的发布数量、阅读量等。
- 用户统计:统计用户注册数量、活跃用户数量等。
- 评论统计:统计评论的数量。
文件上传:
- 支持文章图片、头像等文件的上传。
搜索功能:
- 支持文章内容的搜索。
项目依赖规划
以下是构建这个单体项目所需的依赖:
- Spring Boot: 用于快速构建 Spring 应用程序。
- MyBatis-Plus: 用于简化数据库操作。
- MySQL Connector/J: 用于连接 MySQL 数据库。
- Lombok: 用于简化 Java 代码,自动生成 getter、setter 等方法。
- Spring Web: 用于构建 Web 应用程序。
- Spring Data Redis: 用于使用 Redis 作为缓存(可选)。
- Validation API: 用于参数校验。
- Springdoc OpenAPI UI: 用于生成 API 文档。
- Spring Security: 用于安全认证。
创建父工程 (blog-parent)
- 在 IDE 中创建一个 Maven 项目,选择 pom 作为 packaging 属性。
- 在 pom.xml 中添加以下内容:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ln</groupId>
<artifactId>blog-m</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>blog-m</name>
<description>blog-m</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<spring-boot.version>3.3.4</spring-boot.version>
<spring-security.version>6.2.1</spring-security.version>
<spring-security-oauth2.version>6.2.1</spring-security-oauth2.version>
<hutool.version>5.8.16</hutool.version>
<springdoc.version>2.3.0</springdoc.version>
</properties>
<dependencyManagement>
<dependencies>
<!--springboot依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Spring Boot Web 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL 依赖 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- MyBatis-Plus 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.5</version>
</dependency>
<!-- Redis 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- Lombok 依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- Validation 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- Hutool 依赖 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- Springdoc OpenAPI UI 依赖 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${springdoc.version}</version>
</dependency>
<!-- Spring Security 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- spring security OAuth2 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-resource-server</artifactId>
<version>${spring-security-oauth2.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
<version>${spring-security-oauth2.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
</plugin>
</plugins>
</build>
</project>
评论