春节后的这个月基本在做前后端分离的尝试
之前的技术路线:struts+spring+hibernate+easyUI
- 因为web和app的访问需求普遍化,所以相同后端对多前端的支持成为紧迫任务
- 传统的前后端深度耦合不能很好的实现自动化测试,相比较API化的后端相对可行一些
-
代码维护困难,bug的定位和修改需要对当初开发人员的依赖更大
下图来说明随之而来的开发方式的变化
技术选型
- 前端: react+redux
-
web service端:最好是能保留之前的spring+hibernate也就是说将之前的后端经过最小程度的改造后,将action层做分离;之前的action能支持easyUI的访问,而基于spring 的CXF或者jersey来构建rest api的接口响应层,然后两者都使用之前的service和model。下图说明构想中的效果
进展和遇到的问题
- 前端:react+redux的纯js开发模式对jsp的开发人员来说有一个接收和学习的过程,从目前的情况看,开发量不会比easyui大,适应之后开发效率可能要高过easyUI
- 后端:之前多用的fetchtype:lazy的部分,报错:no proxy 无法加载;之前的openSessionInView不起作用
为了解决lazy load的问题参考github 上的工程:demo-restWS-spring-jersey-jpa2-hibernate中的配置方法,修改了angular-rest-springsecurity,将后者从hsqldb切换为mysql从而用JPA的entityManagerFactory来管理entity加载和transaction-manager的问题
随情况更新...