该项目是一个较为完整的博客系统,具备了常见的博客功能,初衷就是为了解决日常的学习记录与总结。
该博客系统大概包含了以下功能:用户的登录与注册、系统的权限管理、发表编辑博客、博客查阅、博客删除、博客评论、个人信息页展示、个人信息的修改、首页信息显示如热门博客、博客置顶以及所有博客列表,同时会做阅读量的统计,还支持关键字和分类搜索,可以快速查找出想要的博客内容。
当然还为管理员提供了后台管理系统,用来管理与维护博客系统,如用户管理、分类管理、标签管理、博客管理等。
DWBlog -- 父工程,打包方式为pom,统一锁定依赖的版本,同时聚合其他子模块便于统一执行maven命令
├── denwher-framework -- 核心业务模块,打包方式为jar,存放项目业务逻辑代码,也包括一些工具类、实体类、返回结果、异常处理和常量类
├── denwher-blog -- 博客前台模块,打包方式为war,存放前台的controller类、配置类、过滤器和定时任务等
└── denwher-admin-- 博客后台模块,打包方式为war,存放后台的controller类、配置类、过滤器等
前端工程 -- 分为前台工程和后台工程
├── dw-blog-vue -- 博客前台工程,存放html、css、js、图片等静态资源,和发送异步请求的ajax代码,与denwher-blog模块交互
└── dw-vue-admin -- 博客后台工程,存放html、css、js、图片等静态资源,和发送异步请求的ajax代码,与denwher-admin模块交互
- 后端技术栈
技术 | 说明 | 官网 |
---|---|---|
SpringBoot | 容器+MVC框架 | https://spring.io/projects/spring-boot |
Spring Security | 认证和授权框架 | https://spring.io/projects/spring-security |
JWT | JWT登录支持 | https://github.com/jwtk/jjwt |
MybatisPlus | ORM框架 | https://baomidou.com/ |
Redis | 分布式缓存 | https://redis.io/ |
EasyCode | 逆向代码生成 | https://gitee.com/makejava/EasyCode/ |
OSS | 对象存储 | https://www.qiniu.com/products/kodo |
Swagger2 | 文档生成工具 | https://github.com/swagger-api/swagger-ui |
fastjson | 数据序列化 | https://gitee.com/wenshao/fastjson |
EasyExcel | Excel处理工具 | https://easyexcel.opensource.alibaba.com/docs/current/quickstart |
Maven | 项目构建管理 | http://maven.apache.org/ |
- 前端技术栈
技术 | 说明 | 官网 |
---|---|---|
Vue.js | JavaScript 框架 | https://cn.vuejs.org/ |
Element | 组件库 | https://element.eleme.cn/#/zh-CN/component/installation |
工具 | 说明 | 官网 |
---|---|---|
IDEA | 开发IDE | https://www.jetbrains.com/idea/download |
Navicat | 数据库连接工具 | http://www.formysql.com/xiazai.html |
PowerDesigner | 数据库设计工具 | http://powerdesigner.de/ |
RedisDesktop | redis客户端连接工具 | https://github.com/qishibo/AnotherRedisDesktopManager |
Postman | API接口调试工具 | https://www.postman.com/ |
Typora | Markdown编辑器 | https://typora.io/ |
工具 | 版本号 | 下载 |
---|---|---|
JDK | 1.8 | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
Mysql | 5.7 | https://www.mysql.com/ |
Redis | 5.0+ | https://redis.io/download |
- 统一管理依赖版本
<?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.dengwei</groupId>
<artifactId>DWBlog</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>denwher-framework</module>
<module>denwher-admin</module>
<module>denwher-blog</module>
</modules>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- SpringBoot的依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--fastjson依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.33</version>
</dependency>
<!--jwt依赖-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
<!--mybatisPlus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!--阿里云OSS-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>