【NiterForum2.0】基于Springboot2.X的论坛/社区/BBS系统(Thymeleaf+layui+mybatis),有配...
供初学者,学习、交流使用,喜欢的话,恳请给个star(*❦ω❦)。
介绍视频(欢迎留言收藏)
NiterApp(欢迎下载体验)。完美适配了NiterForum,支持app端扫码登录!
在线体验
技术栈
SpringBoot框架。
Thymeleaf模板引擎。
数据访问层:Mybatis,mybatis generator。
数据库:MySql。
服务器:内置Tomcat。
前端相关:Jquery,Bootstrap,Ajax,Layer等。
前端模板:LayUI_fly社区模板。
文件上传:腾讯云COS对象存储。
短信验证:极光短信。
邮箱验证:腾讯企业邮箱。
富文本编辑器:WangEditor。
OAuth2授权登入(QQ、微博、百度、Github)
验证码:vaptcha
扫码登录
主要功能
帖子相关
发帖
编辑
点赞
收藏
回复(支持楼中楼回复)
视频帖支持插入iframe代码和video视频链接,高度完美自适应
阅读权限
帖子分类
话题标签
图片处理(图片审核,图片水印,头像智能剪切)
置顶帖
精华帖
内容审核(支持图片与文本智能审核)
分享(支持web端与移动app端)。
管理面板(支持加精、置顶、删除、提升、快改等操作)。
用户相关
登录(八大登录方式-支持app端扫码登录)
注册
账号体系(绑定账户)(手机号、邮箱号、QQ、微博、百度、Github六合一)
上传头像(支持人脸自动定位)
积分策略
用户组晋升
会员特权
消息通知
个人主页
更新资料
更多功能
搜索
排序
聊天室
瀑布流模式
看看板块定期更新新闻资讯
针对搜索引擎进行优化(SEO)
验证码-防灌水、攻击
智能标签根据正文内容自动生成标签
快速运行
安装必备工具
JDK,Maven
克隆代码到本地
将resources目录下的niter.sql导入新创建的数据库。
根据提示与说明,编辑resources目录下的application.properties文件。 (完整视频教程)
编辑resources目录下的generatorConfig.xml文件,配置数据库相关信息(只需修改数据库链接、用户名、密码)。
运行打包命令
mvn clean package
部署到服务器并运行项目
nohup java -jar NiterForum-2.0.1-SNAPSHOT.jar >temp.txt &
访问项目
项目演示
更多演示,请移步:https://niter.cn/
目录结构
├─cn.niter.forum 应用目录 │ ├─controller 控制器目录 │ ├─modal 映射数据库实体类 │ ├─dto 数据传输层 │ ├─intercepter 拦截器 │ ├─enums 枚举类 │ ├─provider 提供类 │ ├─service 业务逻辑层 │ ├─advice 异常处理 │ ├─exception 自定义异常 │ ├─dao 数据访问层 │ ├─utils 工具类 │__├─config 配置类
更多链接
联系我们
尼特社区官方交流群:955295791
官方交流社区:https://niter.cn/
工具
Git Visual Paradigm Flyway Lombok ctotree Table of content sidebar One Tab Live Reload Postman
特别感谢
NiterForum 码问 LayUI
源码下载
Github:https://github.com/yourkevin/NiterForum/
Gitee:https://gitee.com/yourkevin/NiterForum/
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
理解Go语言组件flag
理解Go语言组件flag作用#主要用来实现命令行的参数解析,以达到实现以下效果的目的 Copy$ cmd -flagname 123使用方式#flag是Go语言的内置包,能接收的参数类型主要有字符串、布尔和数值类型。 方式一#Copyfunc main() { var ip = flag.String("ip", "127.0.0.1", "此处传入IP地址") flag.Parse() fmt.Println(*ip)}我们在main函数中调用flag.String函数来定义命令,该函数共有三个参数 第一个参数是命令名称第二个参数为默认值,也就是不传ip时默认拿到的值第三个参数是给用户的提示同时该函数返回的是指针类型,打印变量ip时记得加上指针符号来输出地址对应的值。在执行flag.String后,记得执行flag.Parse来解析命令,否则不能执行成功。我们来测试一下,先键入一个错的参数,会得到以下提示。 Copygo run main.go -i flag provided but not defined: -iUsage of /var/folders/3s/5v6r481x1...
- 下一篇
从linux源码看socket(tcp)的timeout
从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌。在经历了数次物理机宕机之后,笔者详细的考察了在网络编程(tcp)中的各种超时设置,于是就有了本篇博文。本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。 connectTimeout 在讨论connectTimeout之前,让我们先看下java和C语言对于socket connect调用的函数签名: java: // 函数调用中携带有超时时间 public void connect(SocketAddress endpoint, int timeout) ; C语言: // 函数调用中并不携带超时时间 int connect(int sockfd, const struct sockaddr * sockaddr, socklen_t socklent) 操作系统提供的connect系统调用并没有提供timeout...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker使用Oracle官方镜像安装(12C,18C,19C)