springboot jsp只能在webapp_改造总结之传统SpringMVC架构转换为SpringBoot再到集群

改造出发点,是基于现在服务都在向上云的目标前进,传统SpringMVC难以满足项目持续构建、服务节点任意扩展的需求,所以开始了历史项目的改造。

项目改造考虑的主要是兼容以前的业务代码,以及session管控和之前的组件使用。

历史项目采用的是SpingMVC、Tomcat、多数据源、Shiro权限、Redis、Log4j

搭建SpringBoot框架

改造前先搭建一个SpringBoot框架,为了更好的复用老项目,新框架集成日志框架Log4j2,Shiro权限管控(没有采用Spring推荐的spring security,主要是为了复用),session由redis管控,除上述主要组件外,可以同时集成Swagger2、kafka、actuator等

后台改造

框架搭建完后,把原有业务代码拷过来,这个时候不要急于把原有maven管理jar包的配置文件拷贝过来,而是要在新框架上编译,报什么错,添加什么jar包,这样可以尽可能的少走弯路。

开始适配

1.解决项目缺少jar包引起的报错,然后尽可能复用老项目的配置,谨记缺什么补什么。

2.解决数据源的问题,把需要扫描的数据层配置好,应该就可以了,这个时候可以验证接口是否已经正常。

3.解决Shiro权限,SpringMVC采用的是xml配置,SpringBoot尽可能去除xml配置,因此把xml配置转换成springboot适应的配置

前台改造以及打包

后台解决完后,就是前台的页面,老项目采用的是jsp,而Spring官方是不支持JSP页面的,所以maven打包的时候,需要特殊处理,把src/main/webapp下面的jsp,打包指向到到META-INF/resources,这样打包到jar包后就会包含jsp。

9c57e5c60bfbd89ffa580c46b8ece22c.png

上面打包有一个需要特别注意的因素,虽然jsp打包进去,但是可能会出现访问报错404,很大一部分原因是因为>spring-boot-maven-plugin版本的原因,这个目前只有1.4.2.RELEASE版本才可以

1dc09f13620da5af23e3a7590f360a03.png

前后台都没有报错后,简单验证权限、上传文件、日志文件、定时任务等是否正常,如果没有问题,改造基本完成。

注意事项

改造过程中比较关键的拦截器注解

@Aspect

使用拦截器如果获取不到session,需要在配置中增加FilterRegistrationBean

7b58e7fc6353a6d981593018c53ec659.png

集群

框架改造完后,其实距离到集群,还是需要一定的改造,需要解决以下问题

1.分布式日志的统一管理

2.文件系统管理

3.定时任务防止重复执行

上面这些问题也都有成熟的解决方案,日志可以用kafka异步处理,也可以采用ELK采集处理;文件系统更是有很多MongoDB对象存储、fastdfs等;定时任务可以搭建单独的系统,也可以加redis锁

大家感兴趣可以关注,一一解锁新场景的新组件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值