<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          jwxJava 微信公眾號 MVC 開發(fā)框架

          聯合創(chuàng)作 · 2023-09-25 00:35

          jwx是開源的java公眾號開發(fā)MVC框架,基于spring配置文件和微信消息或事件注解,通過微信上下文處理一個或多個微信公眾號服務請求。 目的主要有兩個,其一生封裝微信請求xml消息為java實體對象,將返回對象轉換為xml響應消息;其二是封裝微信接口為java服務。微信公眾號采用 web服務作為消息與第三方平臺發(fā)生交互,數據格式主要是xml和json,普通的web請求響應機制采用xml數據格式交互,微信接口服務采用json 數據格式。jwx主要對這兩個方面做了封裝處理,另外借鑒springmvc的請求處理方式,以WeixinDispatcherServlet類作為消 息分發(fā)控制器,通過消息組裝工廠生成請求消息或事件實體,根據消息或事件類型,在消息策略處理工廠查找處理策略,獲取相應的微信處理方法,Servlet 獲取到處理方法后,請求線程池獲取線程調用微信方法,根據微信方法的返回值,生成請求的xml響應。本說明文檔將分章節(jié)說明jwx框架的特征、快速入門、 配置、擴展等各個方面。

          一、特征

          1. 消息重排自動處理,提供消息重排緩存接口

          2. 明文/加密模式無感知切換

          3. 常用的微信接口服務封裝

          4. 提供線程池執(zhí)行微信方法,方法調用線程池大小可配置

          5. 長任務消息推送

          6. 通過微信上下文配置支持多個微信公眾號處理

          7. 提供統一的異常處理機制

          8. 提供access_token自動更新機制

          9. 請求消息組裝

          10. 靈活的響應消息類型

          二、快速入門

          本章教材提供一個最簡單的例子,用戶在微信公眾號發(fā)一條foo的文本請求消息,公眾號響應一條bar的文本響應消息。

          1、maven配置文件

          通過maven生成一個webapp項目,例如項目名為weixin,在maven配置文件pom.xml中添加jwx依賴,jwx的1.0.0jar包已經提交到maven中心倉庫,通過中心倉庫搜索jwx關鍵字可以獲取jar包依賴配置。

          <dependency>
              <groupId>com.github.jweixin</groupId>
              <artifactId>jwx</artifactId>
              <version>1.0.0</version>
          </dependency>

          2、web.xml文件配置

          web.xml是web應用的配置文件,jwx從spring配置文件中獲取配置信息,所以必須配置spring上下文環(huán)境;另外,需要配置微信消 息處理分發(fā)Servlet(WeixinDispatcherServlet),用于處理微信送過來的請求消息或事件。jwx對springmvc沒有依 賴關系,web mvc框架可以根據實際需要配置。

          <listener>
          	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
          </listener>
          
          <servlet>
          	<servlet-name>weixin</servlet-name>
          	<servlet-class>com.github.jweixin.jwx.servlet.WeixinDispatcherServlet</servlet-class>
          	<load-on-startup>1</load-on-startup>
          </servlet>
          
          <servlet-mapping>
          	<servlet-name>weixin</servlet-name>
          	<url-pattern>/wx/*</url-pattern>
          </servlet-mapping>
          • load-on-startup表示Servlet在web應用啟動階段加載,數字代表了啟動次序,如果項目使用了springmvc框架,可以調整該數字為2,放到springmvc框架后面啟動加載,但實際上Servlet的啟動次序并沒有太大的關系。

          • spring配置是jwx必須的,如果沒有配置spring上下文,jwx在啟動階段會報錯。

          • url-pattern模式匹配微信公眾號平臺服務器配置的URL配置,如果需要處理多個微信公眾號,可以配置多個servlet-mapping或者使用路徑通配符匹配多個url鏈接。

          3、spring配置文件

          spring配置文件applicationContext.xml里面需要配置WeixinConfigurer,這是jwx唯一必須配置項,如果沒有配置,啟動階段會報錯。

          <context:component-scan base-package="com.github.jweixin.jwx.weixin.service" />
          
          <bean class="com.github.jweixin.jwx.config.WeixinConfigurer">
              <property name="packages">
                  <list>
                      <value>com.telecomjs.yc.controller</value>
                  </list>
              </property>
          </bean>
          • component-scan配置了微信接口服務類,里面包含常用的微信公眾號接口服務,例如菜單管理、消息服務、二維碼服務、用戶管理、微信網 頁授權、素材管理等服務內容,在web應用控制器類和微信控制器類里面可以通過@Autowired注解來注入服務。本配置并不是必須項。

          • WeixinConfigurer是唯一需要配置的部分,packages屬性必須配置,里面是微信控制器包路徑列 表,WeixinDispatcherServlet在啟動階段會掃描包路徑及其下面的子包路徑,如果類擁有@Weixin注解,則該類會被當作微信控制 器類加載到微信上下文。

          • 除了packages屬性是必須配置的,其他配置都有缺省值,包括消息緩存、微信方法線程池的大小、微信方法調用超時閥值等,這部分內容放在配置部分說明了。

          4、編寫微信控制器類

          當配置完上面的3個部分,所有的配置文件就結束了,是不是很簡單呢。下面我們只需要寫微信控制器類就能讓我們的微信公眾號活起來了。微信控制器類是 用@Weixin注解的普通類,與sprngmvc里面的controller很類似,方法的執(zhí)行也很類似。我們在 com.telecomjs.yc.controller包下建一個java類WeixinController,如下:

          package com.telecomjs.yc.controller;
          
          import com.github.jweixin.jwx.context.Weixin;
          import com.github.jweixin.jwx.message.annotation.TextMsg;
          
          @Weixin(value="/wx/coreServlet",
             appID="xxx",
             appSecret="xxx",
             encodingAESKey="xxx",
             token="xxx")
          public class WeixinController {
          
          	@TextMsg("foo")
          	public String foo(){
          		return "bar";
          	}
          }
          • @Weixin需要配置value值,這個實際就是微信服務器配置里面URL最后的部分,當然不包含域名和web應用的上下文,切記,不能包含web應用上下文,其他4個部分配置內容也是公眾號配置內容,我們只需要登錄到公眾號看下填進去就行了。如果沒有配置encodingAESKey,那么是不能處理加密消息的,如果有l(wèi)og4j的配置文件,啟動階段會給出告警信息的。

          • 同一個公眾號可以配置多個@Weixin注解控制器類,其中只需要一個有其他4項配置就可以了,如果多個控制器類配置了其他4個配置項,如果相對應的配置項值不相同,啟動階段會報錯。

          • 不同微信公眾號是通過@Weixin的value值區(qū)分的,該值同時是微信上下文的查找關鍵字。

          • foo方法上面有@TextMsg注解,是定義的微信方法,在Servlet啟動時通過包掃描加載到微信上下文對象中。jwx針對微信消息或事件類型設計了一組微信注解,基本涵蓋了微信公眾號定義的消息和事件類型。

          • @TextMsg是文本消息注解,代表請求類型的是文本消息,value值是發(fā)送的文本消息內容。處理文本適配模式,@TextMsg還支持正則表達式適配模式,這部分內容在配置部分說明。

          • 本例中微信方法并沒有設置參數,實際可以靈活設置參數,例如我們可以在方法中設置HttpServletRequest request,HttpServletResponse response,InMessage in, WeixinContext context等參數,這部分內容也放在配置部分說明。

          • 本例中方法的返回類型是String,代表響應的消息內容是文本消息,jwx提供了豐富的返回值類型,這部分內容會在配置部分詳細說明。

            5、啟動web應用

            上面就是這個最簡單例子的全部內容,讓我們啟動web應用,進入到我們的公眾號,輸入foo文本提交,看看返回的是不是bar這個內容了,如果是,恭喜你,你已經初步掌握了jwx的使用方法。下面更多的內容等著你呢!

          瀏覽 62
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大美女大香蕉网页 | 想看操逼视频 | 夜夜躁狠狠躁日日躁XX | 日本一级黄色作爱视频网站 | 麻豆久久久久久久 |