All Projects → Naccl → NBlog

Naccl / NBlog

Licence: MIT license
🍓 Spring Boot + Vue 前后端分离博客系统 https://naccl.top

Programming Languages

java
68154 projects - #9 most used programming language
Vue
7211 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
SCSS
7915 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to NBlog

springboot-chapter
🚀Spring Boot 2.0基础教程。主流框架整合,实践学习案例。
Stars: ✭ 23 (-96.71%)
Mutual labels:  quartz, springboot, springsecurity, mybatis
Spring Boot Leaning
Spring Boot 2.X 最全课程代码
Stars: ✭ 2,008 (+186.86%)
Mutual labels:  quartz, springboot, mybatis
RuoYi-Vue-Oracle
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 225 (-67.86%)
Mutual labels:  quartz, springsecurity, mybatis
RuoYi-fast
🎉 (RuoYi)官方仓库 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用
Stars: ✭ 117 (-83.29%)
Mutual labels:  quartz, springboot, mybatis
Xc Spring Cloud Alibaba
spring cloud alibaba(2.2.1最新版)+nacos+dubbo+gateWay+sentinel+rocketmq+(pgsql/mysql8.0的json支持)+ignite集成可用于docker分布式框架+分布式自动化任务+mybatis多数据源+seate+ shardingSphere分布式分库事务解决方案
Stars: ✭ 131 (-81.29%)
Mutual labels:  quartz, springboot, mybatis
Ruoyi Oracle
(RuoYi)官方仓库 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用
Stars: ✭ 134 (-80.86%)
Mutual labels:  quartz, springboot, mybatis
Ibase4j
Spring,SpringBoot 2.0,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis缓存,Shiro权限管理,Spring-Session单点登录,Quartz分布式集群调度,Restful服务,QQ/微信登录,App token登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel导入导出、FTP/SFTP/fastDFS上传下载、二维码、XML读写、高精度计算、系统配置工具类等等。
Stars: ✭ 1,548 (+121.14%)
Mutual labels:  quartz, springboot, mybatis
coupons
淘宝客项目,支持App,微信小程序,QQ小程序
Stars: ✭ 392 (-44%)
Mutual labels:  springboot, springsecurity, mybatis
Spring Boot Projects
该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的线上博客项目/企业大型商城系统/前后端分离实践项目等,摆脱各种 hello world 入门案例的束缚,真正的掌握 Spring Boot 开发。
Stars: ✭ 4,022 (+474.57%)
Mutual labels:  quartz, springboot, mybatis
Api Boot
“ ApiBoot”是为接口服务而生的,基于“ SpringBoot”完成扩展和自动配置,内部封装了一系列的开箱即用Starters。
Stars: ✭ 460 (-34.29%)
Mutual labels:  quartz, springboot, mybatis
Ruoyi
(RuoYi)官方仓库 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用
Stars: ✭ 905 (+29.29%)
Mutual labels:  quartz, springboot, mybatis
Ruoyi Vue
(RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 596 (-14.86%)
Mutual labels:  quartz, springboot, mybatis
Ruoyi Vue Fast
(RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 107 (-84.71%)
Mutual labels:  quartz, springboot, mybatis
energy-management-sys communication-sub-sys
基于DLT645-2007/DLT645-1997协议的智能电表数据采集系统。借助于高性能的网络编程框架Netty开发,系统可以和智能电表交互并把设备传上来的数据实时写进数据库(目前只支持MySQL)。
Stars: ✭ 27 (-96.14%)
Mutual labels:  springboot, mybatis
Funiture
慕课网课程推荐 Java并发编程与高并发解决方案:http://coding.imooc.com/class/195.html Java开发企业级权限管理系统:http://coding.imooc.com/class/149.html github: https://github.com/kanwangzjm/funiture, spring项目,权限管理、系统监控、定时任务动态调整、qps限制、sql监控(邮件)、验证码服务、短链接服务、动态配置等
Stars: ✭ 1,786 (+155.14%)
Mutual labels:  quartz, mybatis
Zeusspring
基于Spring Boot 2.0的前后端分离的快速开发平台,此仓库是后台部分; 前台:Vue+Element 后台:Spring Boot 2.0/Spring Security/JWT/Spring Data JPA+Mybatis-Plus/Redis/分布式限流/同步锁/验证码/动态权限管理 数据权限 工作流 代码生成 日志记录 第三方社交账号、短信登录
Stars: ✭ 117 (-83.29%)
Mutual labels:  quartz, springboot
hqc mp
微信小程序+微信管理后台+微信用户前台
Stars: ✭ 69 (-90.14%)
Mutual labels:  quartz, mybatis
HumanResources
Account Registration and Confirmation. Exception Handling. Caching with Redis.Mail sender by Apache Kafka.Notification send with RabbitMq.
Stars: ✭ 19 (-97.29%)
Mutual labels:  springboot, springsecurity
springboot-react-blog
使用 springboot 和 react 开发的博客系统
Stars: ✭ 77 (-89%)
Mutual labels:  springboot, mybatis
beihu-boot
企业级快速开发框架集,提供各种组件的模板方法包装,简化使用成本,供参考学习!
Stars: ✭ 32 (-95.43%)
Mutual labels:  quartz, mybatis

NBlog logo

简介

Spring Boot + Vue「前后端分离,人不分离」博客系统

自用博客,长期维护,欢迎勘误

预览地址:

前台:https://naccl.top

后台:https://admin.naccl.top

后端

  1. 核心框架:Spring Boot
  2. 安全框架:Spring Security
  3. Token:jjwt
  4. ORM 框架:MyBatis
  5. 分页插件:PageHelper
  6. NoSQL 缓存:Redis
  7. Markdown 转 HTML:commonmark-java
  8. 离线 IP 地址库:ip2region
  9. 定时任务:quartz
  10. UserAgent 解析:yauaa

邮件模板参考自 Typecho-CommentToMail-Template

基于 JDK8 开发,8以上要添加依赖:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

前端

核心框架:Vue2.x、Vue Router、Vuex

Vue 项目基于 @vue/cli4.x 构建

JS 依赖及参考的 css:axiosmomentnprogressv-viewerprismjsAPlayerMetingJSlodashmavonEditorechartstocbotiCSS

@willWang8023 维护的 Vue3 版本请查看 blog-view-vue3

后台 UI

后台基于 vue-admin-template 二次修改后的 my-vue-admin-template 模板进行开发(于2021年11月1日重构

UI 框架为 Element UI

前台 UI

Semantic UI:主要使用,页面布局样式,个人感觉挺好看的 UI 框架,比较适合前台界面的开发,语义化的 css,前一版博客系统使用过,可惜该框架 Vue 版的开发完成度不高,见 Semantic UI Vue

Element UI:部分使用,一些小组件,弥补了 Semantic UI 的不足,便于快速实现效果

文章排版:基于 typo.css 修改

Telegram Bot 快捷操作

桌面 Phone Phone
桌面客户端效果图 手机客户端效果图1 手机客户端效果图2

若要启用该功能,参考以下步骤:

  1. 向 @BotFather 申请一个 Bot,得到该 Bot 的token,格式如1234567890:qwertyuiopasdfghjklzxcvbnm
  2. 与该 Bot 私聊,随便发个消息,然后打开此链接https://api.telegram.org/bot<botToken>/getUpdates(替换链接中的 token),在result -> message -> chat -> id得到chatId
  3. 将获取的tokenchatId填入application-dev.properties,并启用comment.notify.channel=tg
  4. 由于目前仅提供 webhook 的方式获取消息更新,所以application-dev.properties中的blog.api需要填写后端 API 的地址,并且必须是https(Telegram 的要求),也就是说如果你没有公网 IP 或内网穿透或反向代理,那么在本地环境是无法测试的,建议直接扔服务器上
  5. 国内通常情况下无法访问 TG 的 API,因此提供了两种方式
    1. 正向代理:配置http.proxy.server,通过你的代理发送请求
    2. 反向代理:可以直接使用我跑在 Cloudflare Workers 上的反代,默认配置即可,但建议自行搭建,示例反代随时可能关闭🙃。示例代码已放在blog-api/cfworker-tg-api-open.js,CV 即可 run(22.05.12 更新,近两天大陆绝大多数地区 *.workers.dev 域名已被墙,因此若仍想使用此反代方式访问 cf worker,需要将 Worker 绑定路由至自己的域名,详见相关讨论,感恩!

开发环境

  1. 创建 MySQL 数据库nblog,并执行/blog-api/nblog.sql初始化表数据
  2. 修改配置信息/blog-api/src/main/resources/application-dev.properties
  3. 安装 Redis 并启动
  4. 启动后端服务
  5. 分别在blog-cmsblog-view目录下执行npm install安装依赖
  6. 分别在blog-cmsblog-view目录下执行npm run serve启动前后台页面

注意事项

一些常见问题:

  • MySQL 确保数据库字符集为utf8mb4(”站点设置“及”文章详情“等许多表字段需要utf8mb4格式字符集来支持 emoji 表情,否则在导入 sql 文件时,即使成功导入,也会有部分字段内容不完整,导致前端页面渲染数据时报错)
  • 确保 Maven 和 NPM 能够成功导入现版本依赖,请勿升级或降低依赖版本
  • 数据库中默认用户名密码为Admin123456,因为是个人博客,没打算做修改密码的页面,可在top.naccl.util.HashUtils下的main方法手动生成密码存入数据库
  • 注意修改application-dev.properties的配置信息
    • 注意修改token.secretKey,否则无法保证 token 安全性
    • spring.mail.hostspring.mail.port的默认配置为阿里云邮箱,其它邮箱服务商参考关键字spring mail 服务器(邮箱配置用于接收/发送评论提醒)
  • 如需部署,注意将/blog-view/src/plugins/axios.js/blog-cms/src/util/request.js中的baseUrl修改为你的后端 API 地址
  • 大部分个性化配置可以在后台“站点设置”中修改,小部分由于考虑到首屏加载速度(如首页大图)需要修改前端源码

隐藏功能

  • 在前台访问/login路径登录后,可以以博主身份(带有博主标识)回复评论,且不需要填写昵称和邮箱即可提交
  • 在 Markdown 中加入<meting-js server="netease" type="song" id="歌曲id" theme="#25CCF7"></meting-js> (注意以正文形式添加,而不是代码片段)可以在文章中添加 APlayer 音乐播放器,netease为网易云音乐,其它配置及具体用法参考 MetingJS
  • 提供了两种隐藏文字效果:在 Markdown 中使用@@包住文字,文字会被渲染成“黑幕”效果,鼠标悬浮在上面时才会显示;使用%%包住文字,文字会被“蓝色覆盖层”遮盖,只有鼠标选中状态才会反色显示。例如:@@隐藏文字@@%%隐藏文字%%

LICENSE

MIT

Thanks

感谢 JetBrains 提供的 Open Source License

感谢上面提到的每个开源项目

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].