美文网首页Java 杂谈Spring-BootSpringFramework
基于springboot+vue.js实现的前后端分离的blog

基于springboot+vue.js实现的前后端分离的blog

作者: 余空啊 | 来源:发表于2018-06-25 10:26 被阅读147次

    关于

    其实在很早之前我就开发过一个博客系统,不过由于当时自己的技术不够成熟,所以选择的是ssm+velocity开发。前后端没有分离,编辑器选择是百度uedit,后台使用的jQuery easyui,整个界面不是很美观,而且富文本编辑器很难用。所以一直想想给blog 升级。
    现在 blog v2.0 beat即将上线。
    它是基于 spring + vue实现的。

    技术栈

    • springboot 后台基础框架提供rest api接口

    • springsecurity 提供安全权限认证

    • jwt 提供访问token

    • spring-data-jpa 持久层访问

    • redis 提供数据缓存

    • elasticsearch 提供全文检索

    • 七牛云 图片托管至七牛云oss

    • vue.js 前台基础框架

    • iview 后台管理ui

    运行截图


    image.png

    分隔符

    image.png

    主要实现代码

    package com.blog.qiniu.service.impl;
    
    import com.blog.qiniu.QiNiuProperties;
    import com.blog.qiniu.service.QiNiuService;
    import com.qiniu.common.QiniuException;
    import com.qiniu.http.Response;
    import com.qiniu.storage.BucketManager;
    import com.qiniu.storage.UploadManager;
    import com.qiniu.util.Auth;
    import com.qiniu.util.StringMap;
    import org.springframework.beans.factory.InitializingBean;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.io.File;
    import java.io.InputStream;
    
    /**
     * @author: yukong
     * @date: 2018/6/21 13:50
     * @description:
     */
    @Service
    public class QiNiuServiceImpl implements QiNiuService, InitializingBean {
        @Autowired
        private UploadManager uploadManager;
        @Autowired
        private BucketManager bucketManager;
        @Autowired
        private Auth auth;
        @Autowired
        private QiNiuProperties qiNiuProperties;
        private StringMap putPolicy;
        @Override
        public Response uploadFile(File file) throws QiniuException {
            Response response = this.uploadManager.put(file, null, getUploadToken());
            int retry = 0;
            while (response.needRetry() && retry < 3) {
                response = this.uploadManager.put(file, null, getUploadToken());
                retry++;
            }
            return response;
        }
        @Override
        public Response uploadFile(InputStream inputStream) throws QiniuException {
            Response response = this.uploadManager.put(inputStream, null, getUploadToken(), null, null);
            int retry = 0;
            while (response.needRetry() && retry < 3) {
                response = this.uploadManager.put(inputStream, null, getUploadToken(), null, null);
                retry++;
            }
            return response;
        }
        @Override
        public Response delete(String key) throws QiniuException {
            Response response = bucketManager.delete(qiNiuProperties.getBucket(), key);
            int retry = 0;
            while (response.needRetry() && retry++ < 3) {
                response = bucketManager.delete(qiNiuProperties.getBucket(), key);
            }
            return response;
        }
        @Override
        public void afterPropertiesSet() throws Exception {
            this.putPolicy = new StringMap();
            putPolicy.put("returnBody", "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"bucket\":\"$(bucket)\",\"width\":$(imageInfo.width), \"height\":${imageInfo.height}}");
        }
        /**
         * 获取上传凭证
         *
         * @return
         */
        private String getUploadToken() {
            return this.auth.uploadToken(qiNiuProperties.getBucket(), null, 3600, putPolicy);
        }
    }
    

    总结

    希望大家有兴趣一起完善的可以联系我

    相关文章

      网友评论

      • 垃圾简书_吃枣药丸:赶紧把源码交粗来
      • 3ec27b8a259a:寻找ios马甲包上架大神,有意私聊1916699999
      • SkyLine7:阔以
      • Jswwe:839572024@qq.com拉下
      • ZeroForSpider:感谢大佬,可以分享下github地址吗
        余空啊:@ZeroSpider 目前还没有完善的存在bug的诶
      • 逃亡中_:github 地址
      • 做运营的程序员:我可以加入吗
      • xianxiong:楼主你好,希望学习一下你的这个blog
      • 小县城公务员:你好!我们是程序员大咖旗下专注于程序员生态的公众号程序员大咖(微信号 CodePush)。我们很赞赏你的文章,希望能获得转载授权。授权后,你的文章将会在公众号程序员大咖、程序员共读、源码共读、Java编程精选、iOS开发等渠道发布。我们会注明来源和作者姓名。
        非常感谢~~~
        小县城公务员:@余空啊 十分感谢~
        余空啊:@源码共读 可以
      • 橙小光:技术栈相同,之前也写过一个springboot博客,现在学了vue也想练一下,不知道可以加入吗
      • 桃李报春:源码在哪啊,,希望学习
      • 快乐的小码农呀:我也想写一个来着,可惜页面编写能力太差,不能多尺寸设备适配。。。
        余空啊:@快乐的小码农呀 Github邮箱 下班拉你
        快乐的小码农呀:@余空啊 嗯,不会搞,你代码可以给我分享下么,咱俩用的东西几乎一样。。。
        余空啊:@快乐的小码农呀 你说的是响应式布局吧
      • _查漏补缺_:源码在哪里放着呢 可以观摩一下不
        余空啊:@_查漏补缺_ 不够完善哦 你可以自己完善哦
      • 神豪VS勇士赢:楼主 我想和你一起完成 可以么 当练手了
        神豪VS勇士赢:@余空啊 怎么一起完善啊啊啊
        余空啊:@神豪VS勇士赢 可以啊
      • 旧版男孩:公开源代码不?
        余空啊:@旧版男孩 不够完善哦 存在一些小bug哦
      • 阿懒土灵:文本编辑器用的什么?
        阿懒土灵:@余空啊 用的editormd吗?
        阿懒土灵:@余空啊 markdown是如何集成到web里的?
        余空啊:@阿懒土灵 markdown

      本文标题:基于springboot+vue.js实现的前后端分离的blog

      本文链接:https://www.haomeiwen.com/subject/wfweyftx.html