首页 > 编程 > Java > 正文

【Java】SpringMVC整合jfinal微信(Wechat)项目(图文)

2019-11-09 19:52:17
字体:
来源:转载
供稿:网友
背景为了业务拓展,项目需要使用微信,于是找到了 jfinal 微信项目~~~ (之前还用其他的一个架构MPSDK4J,但是原作者弃坑,一年都没再更新了,但是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 过滤器,采用装饰者设计模式.根据指定路径进行业务处理,如:则已jfinal wx处理,其他的走主业务正常流程。源码web.xml 
	<filter>		<filter-name>jfinal</filter-name>		<filter-class>com.jfinal.weixin.filter.NewJFinalFilter</filter-class>		<init-param>			<param-name>configClass</param-name>			<param-value>com.jfinal.weixin.demo.WeixinConfig</param-value>		</init-param>	</filter>	<filter-mapping>		<filter-name>jfinal</filter-name>		<url-pattern>/*</url-pattern>	</filter-mapping>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/checkVerInfohttp://localhost/wx/api/getFollowers
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表