
SkyBlog源码解析
青云桑
就读于北京师范大学珠海分校,本科。
软件工程,商业软件开发方向。
主Java开发,有时也会摸摸其他玩具。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
对fetch针对RESTful进行再封装
因为后台使用到了RESTful API,而且是使用Token进行认证,所以最好是将fetch再封装一层首先定义几个常量由于API的请求有表单和JSON两种,所以先定义好ContentType的常量RESTful API一般使用五种方法GET/POST/PUT/PATCH/DELETE,也定义为HttpMethod的常量export const ContentType = {...原创 2018-03-08 21:38:53 · 3324 阅读 · 0 评论 -
使用Shell脚本实现自动更新并部署
先放上前端与后台的Shell代码deploy_client_web# 引用工程路径PROJECT_PATH=/data/SkyBlog/client_web/# 工程构建完成后存放的路径BUILD_PATH=${PROJECT_PATH}/build/# 页面部署在Apache的路径APACHE_DEPLOY_PATH=/data/wwwroot/default/skyb...原创 2018-03-08 21:55:02 · 6853 阅读 · 0 评论 -
使用RedisAtomicLong优化"访问量"性能
在每一个网站中,如果要设计访问量这个功能的话,那么将无疑会是请求量最多的接口,那么使用MySQL来进行count(*)查询明显性能就会显差了,并且这个数据要求实时,也不能作缓存,那么便需要Redis这种内存型数据库出场了。RedisAtomicLong这是一个spring-data-redis包中提供的,可以对数据中的Long类型进行原子性操作的类,下面是这个类的头:/** * ...原创 2018-03-08 21:54:19 · 9002 阅读 · 1 评论 -
项目中的各种抽象类解析
BaseEntity基础实体类,包含了共有的主键ID,也方便BaseCrudServiceImpl进行各类操作。@Datapublic abstract class BaseEntity implements Serializable{ private static final long serialVersionUID = 9155075099270404125L; ...原创 2018-03-08 21:53:46 · 642 阅读 · 0 评论 -
使用自定义注解和切面记录系统日志
项目中常常会出现需要记录系统日志的情况,这时使用自定义注解和切面可以很好地解决这个需求。自定义注解 - SysLog定义在方法上的注解,需要指定操作类型还有资源类型。@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface SysLog { /...原创 2018-03-08 21:53:13 · 1828 阅读 · 0 评论 -
启动项目时清空SpringCache在Redis生成的缓存
在开发项目中,因为没有明确进行设计,所以经常会碰到需要修改表,从而导致需要修改实体类的情况,所以在序列化上常常会出现问题。所以我在开发的时候,需要在启动项目时候就清空缓存定义一个缓存公用的前缀public static final String CACHE_KEY_PREFIX = "CACHE:";让一个类实现CommandLineRunner这个接口会让你实现一个run...原创 2018-03-08 21:52:37 · 4865 阅读 · 0 评论 -
SkyBlog中的Token认证机制
Session认证与Token认证的取舍在项目刚刚开始的时候,我还是规划使用Session认证的,期间遇到了不少问题。Session认证是通过把Cookie交给服务端管理的,而fetch在设置credentials时又会要求CORS的Access-Control-Allow-Origin不能设置为*,必须指定域名。前后端分离中,前端还是自行管理状态才是真正的前后端分离后台提供的RES...原创 2018-03-08 21:52:04 · 295 阅读 · 0 评论 -
RESTful中的PUT和PATCH实践
先放上后台的在线API文档:SkyBlog Swagger API在UserApi中,有这样三个接口 1. PUT /users/{id} 更新用户信息 2. PATCH /users/role/{id} 更新用户角色 3. PATCH /users/status/{id} 更新用户状态在这三个接口便可以看出PUT和PATCH的区别 PUT方法主要是用来更新整个资源的,而PATCH...原创 2018-03-08 21:51:22 · 19025 阅读 · 1 评论 -
解析SkyBlog中store中存储的state
说到state,我们肯定从Reducer入手,先来看下AppReducerconst AppReducer = combineReducers({ navigation : NavigationReducer, articles : ArticlesReducer, content : ContentReducer, upload : UploadReducer...原创 2018-03-08 21:39:50 · 315 阅读 · 0 评论 -
SkyBlog介绍
SkyBlogGithub : SkyBlog该项目由我独立开发,是一个阅读与管理合一的轻量级博客,仅支持Markdown编辑。项目使用前后端分离架构,所以部署在Github和自己的服务器各部署了一份前端网页。Client WebGithub Pages : zhuyst.github.ioApache : skyblog.zhuyst.cc前端使用create-rea...原创 2018-03-08 21:56:28 · 689 阅读 · 0 评论