开源框架JeeSite集成SpringBoot实例
本项目衍生自 jeesite、 开源框架JeeSite集成SpringBoot实例 参考 one renren-fast L316476844/springbootexample Foreveriss/SpringBoot
在sb实例的基础上,添加了原有的内容管理(CMS)、模块代码生成(GEN)模块
-
后端
- Spring Boot 1.5.6.RELEASE
- 使用SSM框架, Spring+Spring MVC+MyBatis3.2.8
-
前端
- xxx
- jsp 开发模式(含代码生成, cms),需配置 tomcat 启动,打成 war 包,tomcat 部署。
- 前后端模式后端,可去除支持 jsp 的相关支持,springboot 启动类启动,打成 jar 包部署。
- http://localhost:8087/test/ 返回测试api数据
- oss 实现(七牛云)
- 准备集成 cloud
- docker-compose 配置添加 nginx
- fastdfs 上传 demo (webuploader)
- 分离 configer moudule
- freemarker 生成静态页 demo
- oss 暂未实现(七牛云)
- docker-compose fastDFS
refer to
refer to 使用docker-compose一键部署分布式文件系统FastDFS
- docker-compose 配置 zipkin+elasticsearch
- 添加 ZipkinConfig 配置类,pom 添加 zipkin 依赖
- 拆分多模块开发模式
- 先把 gen 生产代码剥离出来,还用原来的 jsp 页面很是经典
- 还存在问题,之后解决
- 问题记录:
- 健康监控
spring-boot-starter-actuator
配置文件不设置开辟单独端口, 与 拦截器WebMvcConfigurerAdapter
冲突 druid-starter
配置允许multi-statement-allow
支持sql批量操作- 代码生成刚好用 springboot 支持 jsp 的模式 , 就在 jeesite-gen-web 模块
- global,读取属性文件配置 RelaxedPropertyResolver 实现
- 配置缓存shiro redis,分布式部署共享 redis 存储 sessionId
- ShiroConfiguration 配置简化,去掉@Bean 方法传参方式
- 问题记录:
- 去掉热部署,使用热部署 shiro+redis 时报错:
java.lang.ClassCastException
Principal principal = (Principal) subject.getPrincipal();
三种解决办法,这里去掉采用去掉热更新配置
refer to : - ShiroConfiguration @Value获取值为 null
public static LifecycleBeanPostProcessor
此处设置为static
可行
原因及解决 refer to :
- shiro 配置支持移动端,head 添加 Authorization 存储 sessionid
- shiro 升级1.3.2 配置取消 url 携带 sessionId
- 修改登录 controller 统一返回类型 resultMode ,移动端认证成功返回 token
- 添加 api 返回标准格式
- 添加全局异常处理
- 删除 supcan,static
- f,
- bean 配置 ehCache
- 修改默认数据库 url
- 添加单元测试
- 修复启动单元测试或者
maven test
shiroCache cacheManger 注入多个 - 添加 swagger api 接口文档
- 配置类全局跨域
- shiro filter 暂无权限限制
- 支持多数据源(spring boot+druid+mybatis+多数据源),重点参考2
- 没有采用 aop 切换数据源。人为再 controller 层控制数据源选择。
- 没有采用简单负载,只是针对不同数据源非主从模式,determineCurrentLookupKey 默认 db1 数据源
参考1
参考2
0.解决打成的 jar 包过大问题,便于后期部署或者 docker 集成
1.maven plugin 设置 jar 分离 lib 'thin jar'
refer
- 修改启动后自动访问 '/'( 去除 yml 内 springMVC index 配置项 , 非 sb 项目在 springMVC 配置文件)
- 配置 druid
- 日志文件路径 定位到项目路径内 logs ehcache
- modules 添加 一个简单测试 controller