Ahsj基于SpringBoot、Spring-Security、Mybatis-Plus、Druid、Freemarker、Layui等开发的轻量级管理系统快速开发脚手架。拥有用户、角色、菜单、日志、登录日志、数据字典管理、代码生成器、权限数据同步更新等功能,并此项目会进行持续更新升级,欢迎使用。
作者第一次发布完整开源项目,可能会有很多需要修改的地方,欢迎提交意见
项目架构作者:
陈天狼 英文名:Eastern unbeaten
邓阳波 外号名:波波
http://127.0.0.1:8080/nebula-web/sign/login.html
, 账号: admin/123456@!Ab
实现基本的用户登录、用户注销、修改密码等基本功能 RAS非对称加密。
实现用户增加、用户修改、用户删除、高级查询、导入、导出等基本功能。
实现角色增加、角色修改、角色删除等基本功能。
实现菜单增加、菜单修改、菜单删除、按钮权限、等基本功能。
实现机构增加、机构修改、机构删除等基本功能。
实现系统日志和登录日志的功能。
实现数据字典增加、数据字典修改、数据字典删除等基本功能。
实现了在线日志功能、直接可以看到后端在线日志(有点消耗性能)。
实现了代码生成器、对Mybatis-Plus的生成器做了兼容
实现了Token拦截器
实现了Token注入当前登录用户
实现了Jdk8时间格式化
实现了redis集成,json序列化
技术 | 名称 | 官网 |
---|---|---|
Spring Framework | 容器 | http://projects.spring.io/spring-framework/ |
SpringBoot | 容器 | https://spring.io/projects/spring-boot |
Spring-Data-Redis | 缓存 | https://spring.io/projects/spring-data-redis |
SpringMVC | MVC框架 | http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc |
Spring Security | 安全框架 | https://spring.io/projects/spring-security |
Spring session | 分布式Session管理 | http://projects.spring.io/spring-session/ |
MyBatis-Plus | ORM框架 | https://mp.baomidou.com/ |
MyBatis-Plus-Generator | 代码生成 | https://mp.baomidou.com/guide/generator.html |
Druid | 数据库连接池 | https://github.com/alibaba/druid |
FreeMarker | 模板引擎 | http://freemarker.foofun.cn/ |
Redis | 分布式缓存数据库 | https://redis.io/ |
Log4J | 日志组件 | https://logging.apache.org/log4j/2.x/ |
Protobuf & json | 数据序列化 | https://github.com/google/protobuf |
Maven | 项目构建管理 | http://maven.apache.org/ |
Netty-socketio | 实时推送 | https://github.com/mrniko/netty-socketio |
技术 | 名称 | 官网 |
---|---|---|
jQuery | 函式库 | http://jquery.com/ |
layui | UI框架 | https://www.layui.com/ |
Font-awesome | 字体图标 | http://fontawesome.io/ |
material-design-iconic-font | 字体图标 | https://github.com/zavoloklom/material-design-iconic-font |
zTree | 树插件 | http://www.treejs.cn/v3/ |
Select2 | 选择框插件 | https://github.com/select2/select2 |
zheng.jtotop.js | 返回顶部插件 | https://github.com/shuzheng/zheng.jtotop.js |
socket.io.js | SocketIO插件 | https://socket.io/ |
访问量图表显示不正常,需集成百度统计。同时二次开发根据业务修改,此处只是一个静态页面
下面几个不知道的自行百度
JDK1.8+
MySQL5.6+
Maven3.6+
redis3.0+
1.将项目根目录下的docs/sql/nebula-web.sql导入至数据库 2.直接导入docs/sql/20220616001828.nb3数据库备份文件也行
配置文件说明,根据环境修改,注意application.yml的spring.profiles.active的值为配置环境的值
根据环境修改,注意application.yml的spring.profiles.active为dev环境
数据库信息分别是
datasource:
mysql:
validation-query: select 1
driver: com.mysql.jdbc.Driver
database: 数据库名字
ip: 数据库地址
port: 数据库端口号
username: 数据库账号
password: 数据库密码
url: jdbc:mysql://${datasource.mysql.ip}:${datasource.mysql.port}/${datasource.mysql.database}?useSSL=false&serverTimezone=UTC&characterEncoding=utf8
oracle:
validation-query: select 1 from dual
driver: oracle.jdbc.OracleDriver
sid: NCP
ip: 数据库地址
port: 数据库端口号
username: 数据库账号
password: 数据库密码
url: jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =${datasource.oracle.ip} )(PORT = ${datasource.oracle.port} )) (ADDRESS = (PROTOCOL = TCP)(HOST = ${datasource.oracle.ip} )(PORT = ${datasource.oracle.port})) (LOAD_BALANCE = yes) (CONNECT_DATA = (SID = ${datasource.oracle.sid})))
redis:
database: 数据库索引
ip: 数据库地址
port: 数据库端口
password: 数据库密码,没有就空
druid:
login-username: admin
login-password: 123456
运行WebApplication.java
, 默认端口为8080。
http://127.0.0.1:8888/nebula-web/sign/login.html
账号: admin/123456@!Ab
SysUser sysUser = (SysUser) request.getSession().getAttribute(LoginForm.LOGIN_USER_KEY);
1.页面引入: <#assign sec=JspTaglibs["http://http://www.ahsj.link/security/tags"]/>
2.标签使用:
<@sec.authenticate grants="user:userList">
<button class="layui-btn layui-btn-normal" id="userSearchBtn" data-type="reload">查询</button>
</@sec.authenticate>
默认加密方式为md5,你可以自定义密码的加密规则.
@Configuration
public class PasswordConfigurer{
@Bean
public PasswordEncryptor passwordEncryptor(){
return new PasswordEncryptor() {
@Override
public String encrypt(String password) {
//实现自定义的密码的加密规则
return null;
}
@Override
public String decrypt(String encryptedPassword) {
//如果自定义的密码的加密规则为可解密,则需实现该解密方法
return null;
}
};
}
}
import com.google.code.kaptcha.Producer;
@Configuration
public class VerifyCodeGeneratorConfigurer{
@Autowired
private Producer producer;
@Bean
public VerifyCodeGenerator verifyCodeGenerator(){
return (String key, HttpSession session) -> {
//自定义验证码内容
String text = producer.createText();
session.setAttribute(key, text);
return text;
};
}
}
前置条件,必须把 ahsj 的核心包放仓库
mvn package -Dmaven.test.skip=true
http://192.168.1.162:18080
,看到登录页面,表示部署成功[root@csy201805 nebula-web]# nohup java -jar nebula-web.jar > log/server.log 2>&1 &
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.3.RELEASE)
......
2019-04-19 15:42:59.386 INFO 1724 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 18080 (http) with context path '/nubula-web'
2019-04-19 15:42:59.397 INFO 1724 --- [ main] WebApplication : Started WebApplication in 9.863 seconds (JVM running for 11.096)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。