博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在SpringMVC中整合jfinal微信项目
阅读量:6714 次
发布时间:2019-06-25

本文共 2077 字,大约阅读时间需要 6 分钟。

hot3.png

背景

为了业务拓展,项目需要使用微信,于是找到了 jfinal 微信项目~~~ 

jfinal 自带mvc,orm,ioc框架,jfinal wx 又封装了 微信官方sdk库,还算比较好用~

可是,对于jfinal框架依赖太严重。。。

然后经过一段时间的使用,CTO发话了,需要项目集成,觉得 jfinal 微信项目单独部署一个Tomcat服务器太麻烦了~ 多个系统交互时还需要使用RPC,每次微信项目更新还需要更新其他项目的jar包~ 项目拆分多个,问题多多啊~~

于是我得考虑这个事情该怎么搞比较好。

把项目集成有两种方案:

1.将jfinal wx项目集成到主项目中,主项目使用spring mvc。

2.重写主项目微信模块,主要涉及到 微信服务器认证签名,微信事件处理,微信AccessTokenCacheRefesh问题。

考虑了了一下,还是使用第一种方案,将jfinal wx项目集成。

要保证两个点:

1.集成时项目不能影响主项目。

2.jfinal wx项目能使用主项目的东西,如:Spring的Ioc,事务这一块。

于是看了一下jfinal的源码,发现so easy 。

思路

重写jfinal的JFinalFilter 过滤器,采用装饰者设计模式.

根据指定路径进行业务处理,如:/wx则已jfinal wx处理,其他的走主业务正常流程。

源码

web.xml

jfinal
com.jfinal.weixin.filter.NewJFinalFilter
configClass
com.jfinal.weixin.demo.WeixinConfig
jfinal
/*

NewJFinalFilter.java

package com.jfinal.weixin.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import com.jfinal.core.JFinalFilter;/** * JFinal framework filter */public final class NewJFinalFilter implements Filter {	JFinalFilter jFinalFilter = new JFinalFilter();	public void init(FilterConfig filterConfig) throws ServletException {		jFinalFilter.init(filterConfig);	}	public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {		HttpServletRequest request = (HttpServletRequest) req;		String uri = request.getRequestURI();		if (uri.startsWith("/wx"))			jFinalFilter.doFilter(req, res, chain);		else			chain.doFilter(req, res);	}	public void destroy() {		jFinalFilter.destroy();	}}

上面的配置即可实现 Spring MVC& Jfinal wx的项目整合。

源码包图

项目启动日志图

访问如下接口,返回结果正常,不影响原有业务逻辑。

http://localhost/checkVerInfo

http://localhost/wx/api/getFollowers

收藏点赞的人多我就把第二点放出来,jfinal wx与spring service整合这一块放出来

转载于:https://my.oschina.net/linapex/blog/598279

你可能感兴趣的文章
洛谷——P1187 3D模型
查看>>
温度传感器,ds18b20
查看>>
总结从python2.7和python3.0的语法差异
查看>>
PSP(4.13——4.19)以及周记录
查看>>
ecshop为什么删不掉商品分类
查看>>
spark学习笔记
查看>>
bzoj1941[Sdoi2010]Hide and Seek
查看>>
IT兄弟连 Java Web教程 经典面试题2
查看>>
利用setTimeoutc处理javascript ajax请求超时
查看>>
三、Java基础工具(1)_常用类——字符串
查看>>
文献管理与信息分析》第二讲作业
查看>>
java 遍历arrayList的四种方法
查看>>
根据不同的产品id获得不同的下拉选项 (option传多值)
查看>>
css3新增属性:多列(column)
查看>>
redis 主从配置和集群配置
查看>>
手机3D游戏开发:自定义Joystick的相关设置和脚本源码
查看>>
java 数组偶数排在奇数前面
查看>>
window.frames["detailFrm"].isSubmitting = true;//?起什么作用
查看>>
ASCII表
查看>>
idea之debug
查看>>