- 声明:本项目来源于码神之路
- 在项目学习之前先了解一下项目所给的表,暂时未涉及权限的表。
ms_article(文章表)
1. id 文章id,主键,分布式id
2. comment_counts 评论数量
3. create_date 创建时间
4. summary 简介
5. title 标题
6. view_counts 浏览数量
7. weights 是否置顶
8. author_id 作者id
9. body_id 内容id
10. category_id 类别id
ms_article_body(文章内容表)
1. id 文章内容id,主键,分布式id
2. content 具体内容
3. content_html 写文章的内容
4. article_id 对应文章表的id
ms_article_tag(文章标签表)
1. id 文章标签id
2. article_id 对应文章表的id
3. tag_id 对应标签表中哪个标签
ms_category(类别表)
1. id 分类类别id
2. avatar 分类图标
3. category_name 分类名称
4. description 分类描述
ms_comment(评论表)
1. id 评论id
2. content 评论具体内容
3. create_date 评论创建时间
4. article_id 评论对应文章id
5. author_id 评论对应作者id
6. parent_id 一个评论上可以有父评论,就是父评论id
7. to_uid 评论哪个用户
8. level 评论是否有子评论,没有为1
ms_sys_user(用户表)
1. id 用户表主键id
2. account 用户账户
3. admin 用户是否为管理员
4. avatar 头像
5. create_date 注册时间
6. deleted 是否删除
7. email 邮箱
8. last_login 最后登录时间
9. mobile_phhone_number 手机号
10. nickname 昵称
11. password 密码
12. salt 加密盐
13. status 状态
ms_tag(标签表)
- 与ms_article_tag不同的是,这个是独立的标签信息,比如spring、springboot...,没有与文章对应的关系
1. id 标签表主键id
2. avatar 图像
3. tag_name 标签名称
涉及到的技术
springboot+mybatis-plus+redis+mysql
前端工程
npm install
npm run build
npm run dev
后端工程
1.1、构建自己的maven工程
1.2 、配置文件
#server
server.port= 8888
spring.application.name=mszlu_blog
# datasource
spring.datasource.url=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=UTF-8&serverTimeZone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#mybatis-plus
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus.global-config.db-config.table-prefix=ms_
1.3、mybatis-plus插件
@Configuration
//扫包,将此包下的接口生成代理实现类,并且注册到spring容器中
@MapperScan("com.mszlu.blog.dao")
public class MybatisPlusConfig {
//分页插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
1.4、跨域
- 因为是前后端分离,前端使用到的端口是8080,后端使用的端口是8888,所以如果没有做跨域配置的话,那么前端无法连接到后端的服务器,访问不到。
- 跨域配置
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
//跨域配置,不可设置为*,不安全, 前后端分离项目,可能域名不一致
//本地测试 端口不一致 也算跨域
registry.addMapping("/**").allowedOrigins("http://localhost:8080");
}
}
1.5、启动类
- 暂时项目大体结构完成,写一个启动类
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
//跨域配置,不可设置为*,不安全, 前后端分离项目,可能域名不一致
//本地测试 端口不一致 也算跨域
registry.addMapping("/**").allowedOrigins("http://localhost:8080");
}
}