# 启路框架-统一后台代码模板
**Repository Path**: senvon/back-sample
## Basic Information
- **Project Name**: 启路框架-统一后台代码模板
- **Description**: 启路后台管理示例程序,实现了简单的用户权限功能在线demo地址:http://blog.9istock.com/back
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: http://blog.9istock.com
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 1
- **Created**: 2019-05-08
- **Last Updated**: 2025-07-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# back-sample
本项目为了开发各种后台系统提供的一个代码结构,在代码结构里面,实现了用户权限的功能.
文档地址
个人博客已经全部迁往http://blog.9istock.com,同时不再提供https服务,请各位注意
## 初衷
目前整体的开源领域里面有很多后台类框架,我没办法一个一个的去看,看了很多评价很高的框架,比如若依其实并没有想象的那么好,做个小东西是可以的,但是远远达不到一个企业级的开发框架的要求.
另外是自己的积累,虽然时间很长,东西很多,但是一直没有很好的梳理,总是显得东西很多,但是很杂乱.
虽然我的方案在产出的成果上和ruoyi类似,深入发掘,我的方案更多的是一个产品化的解决方案而不仅仅是一个框架.
在IT产品化的方向上,未来一定会出现比我当前的方案更牛,更好用的东西,在看到若依的前端解决方案以后,我觉得我可以做点事情了.
## 适用范围
在我的IT世界观里,所有的系统分为三类,带页面的互联网应用,不带页面的内部服务,和带页面的后台管理.这三种IT系统,底层的框架是互通的,差别就在使用场景和安全策略上.
所以最终我们可以得到下面的关系
1. 互联网前端页面+基础框架=带页面/不带页面的互联网应用
2. 基础框架+微服务中间件=不带页面的内部服务
3. 后台前端页面+基础框架=带页面的后台管理
* (2)转化为不带页面的内部服务,已提供,地址.
* (1)转化为带页面的互联网应用,后续提供,这边又是一个比较大的话题.
本项目就是属于带页面的后台管理,前端基于若依写的后台管理类前端操作方法,提供完整的java框架应该包含的各种底层中间件.非常适合作为初创公司的底层技术框架来使用.
1. 具备严格的代码规范
2. 相对完善且严谨的工具使用
本项目由一个项目框架的基本代码结构转变为可以被产品化的代码结构.需要的运行环境非常灵活和简单
* jdk1.7以上,支持spring3.2开始,到目前的所有版本
* 支持springboot从1.5到目前为止的所有版本(2.5.6)
* 主流数据库的随意切换
* 完整的代码规范以及集成规范
* 自带SSO,而且比SSO范围更大的项目集成
* 支持集群多实例部署
本项目,作者自认可以打9分,代码规范,是一个不可多得的项目模板,适合新人学习,支持war包发布,对各种老旧容器比较温柔,同样也支持springboot打包发布,对新一代程序员比较友好,所以比较适合作为初创企业的底层框架比较合适.
## 开发环境搭建
开发环境依赖于maven,请在settings文件中配置http://nexus.9istock.com/repository/maven-public的mirror
否则需要把[base](https://gitee.com/senvon/base)完全download到本地,并且安装到maven的仓库.
1. 配置数据库,按照如下顺序,执行脚本,项目提供的sql是基于mysql的,入股需要其他数据库,请自行修改pdm文件生成
* sql/new-user-create.sql
* sql/task-create-mysql.sql
* sql/init.sql
2. 配置数据源
* 修改website/src/test/**/UnionRunner.java文件,修改数据源地址
* 修改boot/src/main/resources/**/application-druid.yml,修改springboot的数据源
3. 修改配置参数
* 修改website/src/main/resources/config/conf.properties,根据当前需要的环境,设置属性项
* 修改boot/src/main/resources/config/conf.properties,根据当前需要的环境,设置属性项
* 确定应用支持的租户类型,mutiable.tenant为true,支持多租户,需要额外执行数据库脚本sql/init-mutilTenant.sql,如果需要单租户,mutiable.tenant为false,需要执行sql/init-sigleTenant.sql
4. 启动服务器
* 使用IDE引入代码,请引入maven工程,路径指向back-sample代码的根路径
* 如果编译报错,或者包找不到,请自行将base项目引入IDE,或者将base中的项目发布到私服
* 运行java程序,website/src/test/java/***/UserRuner.java,默认端口号18080,默认contextPath为new-user,如果看的不爽,请自行修改.
5. 登录服务
* 打开浏览器,输入http://localhost:18080/union 能打开浏览器,用户名密码 admin/admin123
6. 关于构建
* 使用settings-hw.xml 直接命令行运行mvn -s settings-hw.xml clean package
## 打包部署
1. 使用命令行进入back-sample的最外层代码目录
2. 键入命令mvn clean package -Dmaven.skip.test
3. 使用war包部署,部署的war包生成在website/target里面
4. 使用jar包部署,部署的jar包生成在boot/target里面
5. 将run.sh和jar包放到一个目录,使用./run.sh start 启动服务,也可以修改run.sh,把包名固化.日志在会在本目录中生成的logs的文件夹内
> 一定要将base项目install到本地仓库或者上传到nexus上,否则不能打包
> 注意配置文件conf.properties的位置,一般来说,部署运维需要将配置和程序分离,目前给出的方式,已经将配置文件打包进war或者jar了,可以外挂配置文件重新覆盖里面的配置,详细请看website/main/resources/spring/spring-property.xml中的配置.我们认为一个可运行的环境=执行包+配置文件,所以配置文件可以给svn/git管理.
## 在线示例
使用https发布http://backsample.9istock.com/new-user
微博:随senvon飞
企鹅群:599073021
文档地址
## 感谢
本项目基于若依的前台封装进行开发,在此感谢若依的开发人员.
项目中使用到下拉控件,请关注[js](https://gitee.com/senvon/js),在此感谢[吴彬](https://gitee.com/wubgitee)同学对本项目的支持