# WxJava Agent æå
## éç¨èå´ä¸æä»¤ä¼å
级
- æ¬æä»¶éç¨äºæ´ä¸ªä»åºï¼ä¾æ¬å°ç¼ç Agentãèªå¨å Agent å Pull Request Review Agent 使ç¨ã
- å¼å§å·¥ä½åå
é
读ä¸ä»»å¡ç´æ¥ç¸å
³ç `README.md`ã`CONTRIBUTING.md`ãæ¨¡å `pom.xml`ãç°æå®ç°åæµè¯ï¼ä¸è¦ä»
åéç¨ç»éªæ¨æé¡¹ç®çº¦å®ã
- è¥åç®å½å卿´å
·ä½ç `AGENTS.md`ï¼å¤ç该ç®å½æä»¶æ¶ä¼å
éµå¾ªè·ç¦»ç®æ æä»¶æè¿ç说æã
- ç¨æ·çæç¡®è¦æ±ä¼å
äºæ¬æä»¶ï¼è¥è¦æ±ä¸å
¼å®¹æ§ãå®å
¨æ§æä»åºçº¦å®å²çªï¼åºå
说æé£é©ï¼ä¸è¦éé»å离ã
- åªä¿®æ¹å®æä»»å¡æå¿
éçæä»¶ï¼ä¸å¤çæ å
³æ ¼å¼ãéææåå²éçé®é¢ã
## é¡¹ç®æ¦è§
- WxJava æ¯é¢å微信çæç Java SDKï¼éç¨ Maven 夿¨¡åç»æã
- å½åæ ¹é¡¹ç®è¦æ± Java 8ï¼`maven.compiler.source` å `maven.compiler.target` å为 `1.8`ï¼ãé¤éä»»å¡æç¡®è¦æ±å级ï¼å¦åæ°å¢ä»£ç ãä¾èµå API å¿
é¡»ä¿æ Java 8 å
¼å®¹ã
- ä¸»è¦ SDK 模åå
æ¬ï¼
- `weixin-java-common`ï¼å模åå
±ç¨çåºç¡ç±»åãå·¥å
·ãå¼å¸¸ãHTTP ä¸é
ç½®è½åã
- `weixin-java-mp`ï¼å¾®ä¿¡å
¬ä¼å·ã
- `weixin-java-miniapp`ï¼å¾®ä¿¡å°ç¨åºã
- `weixin-java-pay`ï¼å¾®ä¿¡æ¯ä»ã
- `weixin-java-cp`ï¼ä¼ä¸å¾®ä¿¡ã
- `weixin-java-open`ï¼å¾®ä¿¡å¼æ¾å¹³å°ã
- `weixin-java-channel`ï¼å¾®ä¿¡è§é¢å·ã微信å°åºã
- `weixin-java-qidian`ï¼å¾®ä¿¡å®¢æç¸å
³è½åã
- `weixin-java-aispeech`ï¼å¾®ä¿¡æºè½è¯é³ã
- `weixin-graal`ï¼GraalVM ç¸å
³æ¯æã
- éææ¨¡å主è¦ä½äºï¼
- `spring-boot-starters`ï¼Spring Boot Starter åå¤è´¦å· Starterã
- `solon-plugins`ï¼Solon æä»¶åå¤è´¦å·æä»¶ã
- `wx-java-bom`ï¼ç»ä¸ç®¡ç坹夿¨¡åçæ¬ç BOMã
- `README.md` è¯´ææ´ä½è½ååä½¿ç¨æ¹å¼ï¼`CONTRIBUTING.md` è§å®ä»£ç è´¡ç®è¦æ±ï¼`docs` ä¿åè¡¥å
ææ¡£ã
## å¼åæµç¨
1. ç¡®è®¤ä»»å¡æ¶åç微信产åå Maven 模åï¼å
æ¥æ¾å模åä¸çç¸ä¼¼æ¥å£ãBeanãå®ç°ç±»åæµè¯ã
2. é
è¯»ç®æ 模ååå
¶ç¶çº§ `pom.xml`ï¼ç¡®è®¤ä¾èµãæµè¯æ¡æ¶åå·²æå®ç°æ¹å¼ã
3. ä¼å
沿ç¨ç°æçå
ç»æãå½åãåºååãHTTP æ§è¡å¨ãå¼å¸¸å¤çåé
置模å¼ã
4. 以æå°åæ´å®æä»»å¡ï¼ä¸è¦å¨åè½ä¿®æ¹ä¸å¤¹å¸¦ä¾èµå级ãå
¨å±æ ¼å¼åææ å
³éæã
5. ä¸ºä¿®å¤ææ°å¢è¡ä¸ºæ·»å æé对æ§çæµè¯ï¼å¹¶å
è¿è¡å影忍¡åçéªè¯ã
6. 交ä»åæ£æ¥ diffãæµè¯ç»æãå
¼å®¹æ§åææ¡£å½±åï¼æç¡®æ¥åæªæ§è¡ææ æ³æ§è¡çéªè¯ã
## 代ç 飿 ¼ä¸å
¼å®¹æ§
- éµå¾ª `.editorconfig`ï¼ä½¿ç¨ç©ºæ ¼ç¼©è¿ã缩è¿å®½åº¦ä¸º 2ãUTF-8ãLFãæä»¶æ«å°¾ä¿çæ¢è¡ï¼å¹¶æ¸
é¤é Markdown æä»¶çè¡å°¾ç©ºæ ¼ã
- ä¿æç®æ æä»¶ç°æä»£ç 飿 ¼ï¼é¿å
ä»
为个人åå¥½è°æ´ importãæ¢è¡ãæ³¨éææå顺åºã
- ä¸ä½¿ç¨ Java 9 å以ä¸è¯è¨ç¹æ§æä»
卿°çæ¬ JDK ä¸åå¨ç APIã
- 项ç®ä½¿ç¨ Lombokï¼æ°å¢æä¿®æ¹ Lombok ç¨æ³æ¶éµå¾ªç¸é»ä»£ç 模å¼ï¼ä¸è¦å¨åä¸åæ´ä¸æ çç±æ¹å为æå·¥æ ·æ¿ä»£ç ã
- å
Œ
± APIãåºåååæ®µãæä¸¾å¼ã常éãé»è®¤å®ç°åä¾èµèå´é½å¯è½å½±å䏿¸¸ç¨æ·ï¼ä¿®æ¹æ¶ä¼å
ä¿ææºç ãäºè¿å¶åè¡ä¸ºå
¼å®¹ã
- ä¸è¦éææ¹åå·²æå¼å¸¸ç±»åã空å¼è¯ä¹ãé»è®¤ HTTP 客æ·ç«¯ãJSON/XML æ å°æé
ç½®å è½½è¡ä¸ºã
- æ°å¢ä¾èµåå
ç¡®è®¤ç°æä¾èµè½å¦æ»¡è¶³éæ±ï¼ä¾èµçæ¬åºå¨åéçç¶ POM æ BOM ä¸ç»ä¸ç®¡çï¼é¿å
模åé´çæ¬æ¼ç§»ã
## API ä¸å®ç°çº¦å®
- 对æ¥å¾®ä¿¡æ¥å£æ¶ï¼ä»¥å¯¹åºäº§åç宿¹æ¥å£å®ä¹åä»åºå
ç°æåç±»å®ç°ä¸ºä¾æ®ï¼æ ¸å¯¹è¯·æ±è·¯å¾ãHTTP æ¹æ³ãåæ®µåãå¿
填项åè¿åç»æã
- Java åæ®µåå¯ä»¥ç¬¦å项ç®å½åä¹ æ¯ï¼ä½ä¼ è¾å±å段åå¿
é¡»ä¸å¾®ä¿¡æ¥å£ä¿æä¸è´ï¼éè¦æ¶ä½¿ç¨é¡¹ç®ç°æç GsonãJackson æ XStream æ å°æ¹å¼ã
- æ°å¢ Service API æ¶åæ¥æ£æ¥æ¥å£ãå®ç°ç±»ã请æ±/ååº BeanãURL 常éãåºååéé
å¨åæµè¯æ¯å¦é½éè¦æ´æ°ã
- æ¶åå¤ä¸ª HTTP 客æ·ç«¯å®ç°æ¶ï¼ä¿æ Apache HttpClientãHttpComponentsãOkHttp å Jodd çç°æå®ç°çè½åä¸è´ï¼ä¸è¦åªä¿®å¤å
¶ä¸ä¸ç§èéæ¼å
¶ä»å¯éå®ç°ã
- æ¶å Starter ææä»¶æ¶ï¼æ£æ¥åè´¦å·ä¸å¤è´¦å·çæ¬ä»¥åèªå¨é
ç½®ãé
ç½®å±æ§åç¤ºä¾æµè¯æ¯å¦éè¦åæ¥ã
- å
Œ
±æ¹æ³éè¦æ¸
æ°ç Javadocï¼è³å°åç¡®æè¿°åæ°ãè¿åå¼ãå¼å¸¸åå¿
è¦çº¦æï¼ä¸è¦ç¼åä¸å®ç°ä¸ä¸è´ç模æ¿å注éã
- ä¸åæå¼å¸¸ï¼ä¸ä½¿ç¨ç©º `catch`ï¼ä¸å¨æ¥å¿ä¸æ³é² tokenãsecretãå¯é¥ãç¾ååææç¨æ·æææ°æ®ã
## æµè¯ä¸éªè¯
- é¡¹ç®æµè¯ä¸»è¦ä½¿ç¨ TestNGï¼æ²¿ç¨ç®æ 模åå·²ææµè¯åºç±»ãæ°æ®æä¾å¨ãMock æ¹å¼åèµæºå¸å±ã
- ä¿®å¤ bug æ¶åºæ·»å è½å¤å¤ç°æ§è¡ä¸ºå¹¶éªè¯ä¿®å¤ç»æçå彿µè¯ï¼æ°å¢å
Œ
±æ¹æ³å¿
é¡»é
å¥åå
æµè¯ã
- ä¼å
æ§è¡å影忍¡ååå
¶ä¾èµçæµè¯ï¼
```shell
mvn -pl