# chanlun_lee-yanxuan-admin-master **Repository Path**: chanlunlee/chanlun_lee-yanxuan-admin-master ## Basic Information - **Project Name**: chanlun_lee-yanxuan-admin-master - **Description**: 2022广东科学狼码项目班后端代码@chanlun_lee - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-10-11 - **Last Updated**: 2025-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ahsj-Project-Web shit-code 没错,代码跟名字一样,shit一样的烂, ## 项目介绍 Ahsj基于SpringBoot、Spring-Security、Mybatis-Plus、Druid、Freemarker、Layui等开发的轻量级管理系统快速开发脚手架。拥有用户、角色、菜单、日志、登录日志、数据字典管理、代码生成器、权限数据同步更新等功能,并此项目会进行持续更新升级,欢迎使用。 作者第一次发布完整开源项目,可能会有很多需要修改的地方,欢迎提交意见 ## 项目启动后访问呢地址 `http://127.0.0.1:8080/nebula-web/sign/login.html`, 账号: admin/123456@!Ab ## WEB版本已经实现功能 - 实现基本的用户登录、用户注销、修改密码等基本功能 RAS非对称加密。 - 实现用户增加、用户修改、用户删除、高级查询、导入、导出等基本功能。 - 实现角色增加、角色修改、角色删除等基本功能。 - 实现菜单增加、菜单修改、菜单删除、按钮权限、等基本功能。 - 实现机构增加、机构修改、机构删除等基本功能。 - 实现系统日志和登录日志的功能。 - 实现数据字典增加、数据字典修改、数据字典删除等基本功能。 - 实现了在线日志功能、直接可以看到后端在线日志(有点消耗性能)。 - 实现了代码生成器、对Mybatis-Plus的生成器做了兼容 ## API版本已经实现功能 - 实现了Token拦截器 - 实现了Token注入当前登录用户 - 实现了Jdk8时间格式化 - 实现了redis集成,json序列化 ### 技术选型 #### 后端技术: 技术 | 名称 | 官网 ----|------|---- Spring Framework | 容器 | [http://projects.spring.io/spring-framework/](http://projects.spring.io/spring-framework/) SpringBoot | 容器 | [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot) Spring-Data-Redis | 缓存 | [https://spring.io/projects/spring-data-redis](https://spring.io/projects/spring-data-redis) SpringMVC | MVC框架 | [http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc](http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc) Spring Security | 安全框架 | [https://spring.io/projects/spring-security](https://spring.io/projects/spring-security) Spring session | 分布式Session管理 | [http://projects.spring.io/spring-session/](http://projects.spring.io/spring-session/) MyBatis-Plus | ORM框架 | [https://mp.baomidou.com/](https://mp.baomidou.com/) MyBatis-Plus-Generator | 代码生成 | [https://mp.baomidou.com/guide/generator.html](https://mp.baomidou.com/guide/generator.html) Druid | 数据库连接池 | [https://github.com/alibaba/druid](https://github.com/alibaba/druid) FreeMarker | 模板引擎 | [http://freemarker.foofun.cn/](http://freemarker.foofun.cn/) Redis | 分布式缓存数据库 | [https://redis.io/](https://redis.io/) Log4J | 日志组件 | [https://logging.apache.org/log4j/2.x/](https://logging.apache.org/log4j/2.x/) Protobuf & json | 数据序列化 | [https://github.com/google/protobuf](https://github.com/google/protobuf) Maven | 项目构建管理 | [http://maven.apache.org/](http://maven.apache.org/) Netty-socketio | 实时推送 | [https://github.com/mrniko/netty-socketio](https://github.com/mrniko/netty-socketio) #### 前端技术: 技术 | 名称 | 官网 ----|------|---- jQuery | 函式库 | [http://jquery.com/](http://jquery.com/) layui | UI框架 | [https://www.layui.com/](https://www.layui.com/) Font-awesome | 字体图标 | [http://fontawesome.io/](http://fontawesome.io/) material-design-iconic-font | 字体图标 | [https://github.com/zavoloklom/material-design-iconic-font](https://github.com/zavoloklom/material-design-iconic-font) zTree | 树插件 | [http://www.treejs.cn/v3/](http://www.treejs.cn/v3/) Select2 | 选择框插件 | [https://github.com/select2/select2](https://github.com/select2/select2) zheng.jtotop.js | 返回顶部插件 | [https://github.com/shuzheng/zheng.jtotop.js](https://github.com/shuzheng/zheng.jtotop.js) socket.io.js | SocketIO插件 | [https://socket.io/](https://socket.io/) ### 项目包结构 ![数据字典](dist/projectInfo.jpg) ## 部分界面展示 ### 登录页面 ![登录页面](dist/login.jpg) ### 系统首页 `访问量图表显示不正常,需集成百度统计。同时二次开发根据业务修改,此处只是一个静态页面` ![系统首页](dist/index.jpg) ### 用户管理 ![用户管理](dist/userMng1.jpg) ![用户管理-导入](dist/userMng2.jpg) ### 角色管理 ![角色管理](dist/roleMng.jpg) ### 菜单管理 ![菜单管理](dist/menuMng.jpg) ### 日志管理 ![日志管理](dist/logMng.jpg) ### 登录日志 ![登录日志](dist/loginLog.jpg) ### 数据字典 ![数据字典](dist/dictMng.jpg) # 使用方法 ### 软件需求 ```` JDK1.8+ MySQL5.6+ Maven3.6 ```` ### 使用步骤 - 1.使用前提:安装lombok插件 - IDEA安装方法:[https://blog.csdn.net/zhglance/article/details/54931430](https://blog.csdn.net/zhglance/article/details/54931430) - eclipse安装方法:[https://blog.csdn.net/dorothy1224/article/details/79280591/](https://blog.csdn.net/dorothy1224/article/details/79280591/) - 2.克隆到本地,并切换到dev-1.x分支 ```` git clone git@gitlab.com:nubula/nebula-web.git ```` - 3.导入SQL 将项目根目录下的docs/sql/nebula-web.sql导入至数据库 - 4.修改数据库信息 根据环境修改,注意application.yml的spring.profiles.active为test环境 ```` datasource: mysql: database: nebula-web ip: localhost port: 3306 username: root password: 123456 spring: redis: password: 123456!Ab database: 0 port: 6378 jedis: pool: max-idle: 0 min-idle: 0 max-active: 8 max-wait: -1s host: 192.168.1.162 ssl: false timeout: 3s session: store-type: redis redis: namespace: ${spring.application.name}:AHSJ:session timeout: 1800s ```` - 5.启动 运行`WebApplication.java`, 默认端口为8080。账号: 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"> ```` # 使用扩展 ### 自定义密码算法 默认加密方式为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; }; } } ```` ### 部署到服务器(jar方式) - 1.执行打包命令 ```` mvn package -Dmaven.test.skip=true ```` - 2.拷贝target目录下的nebula-web.jar到服务器,然后启动。看到以下输出信息,打开浏览器访问`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] com.nebula.WebApplication : Started WebApplication in 9.863 seconds (JVM running for 11.096) ```` - 注意事项 1.有可能报log/server.log目录或文件不存在,这是因为首次启动,只需创建对应的文件和文件夹,然后再启动即可。 2.本例子部署的服务为192.168.1.162,应用启动端口为18080,实际按部署环境进行访问地址即可。