小说精品屋-plus
演示地址
点击前往(前台门户)
前言
小说精品屋-plus致力于打造一个完整的商用小说门户平台,使用前建议先阅读此文档。
项目介绍
小说精品屋是一个多平台(web、安卓app、微信小程序)、功能完善的小说弹幕网站,包含精品小说专区、轻小说专区和漫画专区。包括小说/漫画分类、小说/漫画搜索、小说/漫画排行、完本小说/漫画、小说/漫画评分、小说/漫画在线阅读、小说/漫画书架、小说/漫画阅读记录、小说下载、小说弹幕、小说/漫画自动爬取、小说内容自动分享到微博、邮件自动推广、链接自动推送到百度搜索引擎等功能。包含电脑端、移动端、微信小程序等多个平台,现已开源web端、安卓端、小程序端源码。
小说精品屋-plus是在小说精品屋的基础上,重新进行了数据库设计、代码重构和功能增强,提升了程序整体的可读性和性能,增加了很多商用特性。主要升级如下:
- 数据库重新设计,结构调整。
- 服务端代码重构,MyBatis3升级为MyBatis3DynamicSql。
- 移动站与PC站站点分离,浏览器自动识别跳转。
- PC站UI更新。
- 新闻模块。
- 排行榜。
- 小说评论模块。
- 阅读主题模块。
- 作家专区。
- 充值。
- 后台管理系统。
- 爬虫管理系统。
项目结构
novel-plus -- 父工程
├── novel-common -- 通用模块
├── novel-front -- 前台门户系统
├── novel-crawl -- 爬虫管理系统
└── novel-admin -- 后台管理系统
技术选型
技术 | 说明 |
---|---|
SpringBoot | Spring应用快速开发脚手架 |
MyBatis | 持久层ORM框架 |
MyBatis Dynamic SQL | Mybatis动态sql |
PageHelper | MyBatis分页插件 |
MyBatisGenerator | 持久层代码生成插件 |
JJWT | JWT登录支持 |
SpringSecurity | 安全框架 |
Shiro | 安全框架 |
Ehcache | Java进程内缓存框架(默认缓存) |
Redis | 分布式缓存(缓存替换方案,默认关闭,一行配置开启) |
ElasticSearch | 搜索引擎(搜索增强方案,默认关闭,一行配置开启) |
RabbitMq | 消息队列(流量削峰,默认关闭,一行配置开启) |
OSS | 阿里云对象存储服务(图片存储方式之一,一行配置即可切换) |
FastDfs | 开源轻量级分布式文件系统(图片存储方式之一,一行配置即可切换) |
Redisson | 实现分布式锁 |
Lombok | 简化对象封装工具 |
Docker | 应用容器引擎 |
Mysql | 数据库服务 |
Thymeleaf | 模板引擎 |
Layui | 前端UI |
PC站截图
- 首页
- 分类索引页
- 搜索页
- 排行榜
- 详情页
- 阅读页
- 用户中心
- 充值
- 作家专区
- 购买
手机站截图
首页
小说详情页
目录页
小说阅读页
爬虫管理系统截图
后台管理系统截图
安装步骤
数据库安装:
- 安装MySQL软件。
- 修改MySQLmax_allowed_packet配置(建议100M)。
- 新建数据库,设置编码为utf8mb4。
- 执行sql/novel_plus.sql脚本文件。
爬虫管理系统安装:
- 修改novel-common模块下application-dev.yml文件中的数据库的配置。
- 修改novel-crawl模块下application.yml文件中的管理员账号密码。
- 启动程序,打开浏览器,默认8081端口访问。
- 选择已有或新增爬虫源(支持自定义爬虫规则),点击开启按钮,开始爬取小说数据。
前台小说门户安装:
- 修改novel-common模块下application-dev.yml文件中的数据库的配置。
- 启动程序,打开浏览器,默认8080端口访问。
喜欢此项目的可以给我的GitHub和Gitee加个Star支持一下 。
其他安装教程
包安装教程:点击前往
宝塔安装教程(非官方):点击前往
docker安装教程:点击前往
代码仓库
Gitee仓库地址: https://gitee.com/xiongxyang/novel-plus
GitHub仓库地址: https://github.com/201206030/novel-plus
最新评论
mat插件可以检测内存数据
标识接口?
序列化serializabel就是一个标识
就差一个MAC了
mark
除了预置sql查询字段,其他我竟然都没用过
可以,这个问题遇到过
mybatis多个参数: 1. 注解(最常用) 2. 转化为对象或MAP 3. 按顺序(这个最蠢,写的代码看得费劲) 单个参数需要注意得: 1.基本数据类型随便写 2.数组用array,l