一款轻量级的微信消息处理框架,可以让业务代码与微信微信处理框架代码解耦,并且你根本不需要关心消息是如何发送的,你只需要关注你的业务即可.
Es kapselt das Empfangen und Senden von WeChat-Nachrichten und kann die annotationsgesteuerte Entwicklung verwenden, um die Geschäftsentwicklung zu erleichtern, ohne auf die Details des Nachrichtenempfangs und -versands achten zu müssen.
Die abstrakte Klasse des Nachrichtenprozessors ist intern gekapselt und bietet Funktionen wie Nachrichtenfilterung vor der Nachrichtenverarbeitung, Standardverhaltensprotokolle usw. Benutzer können diese Klasse erben, um ihr eigenes Geschäft zu implementieren.
Fügen Sie einfach Anmerkungen hinzu, um die Nachrichtenprozessoren, die jeden Typ verarbeiten, zu trennen. Es unterstützt auch die Trennung von Nachrichtenprozessoren für verschiedene Ereignistypen, wodurch die Notwendigkeit vermieden wird, große Abschnitte von „if elseif elseif“ zu verwenden, um den Nachrichtentyp im Code zu bestimmen, der die Geschäftslogik verarbeitet . Die Verantwortlichkeiten jeder Schnittstelle sind klar und die Implementierung ist stärker entkoppelt.
Erstellen Sie eine wechat.properties- Eigenschaftendatei im Stammpfad des Klassenpfads und konfigurieren Sie wechat.appId, wechat.appsecret, wechat.token und wechat.encodingAESKey ( der Name muss mit diesem identisch sein ). Das Beispiel lautet wie folgt:
Schreiben Sie eine Nachrichtenprozessorklasse, erben Sie die abstrakte Klasse AbstractMessageHandler , implementieren Sie die Methode doHandleMessage , fügen Sie der Klasse die Annotation @MessageProcessor hinzu und geben Sie den zu verarbeitenden Nachrichtentyp an. Das Attribut messageType gibt den zu verarbeitenden Nachrichtentyp an, und eventType gibt den an zu verarbeitender Ereignistyp. Wenn es sich bei dem Nachrichtentyp um eine normale Nachricht handelt, muss das Attribut eventType nicht angegeben werden (selbst wenn es angegeben wird, ist es ungültig. Der Beispielcode lautet wie folgt:
@ Component
@ MessageProcessor ( messageType = MessageType . TEXT_MESSAGE )
public class TextMessageHandlerExample extends AbstractMessageHandler {
private static final Logger LOGGER = LoggerFactory . getLogger ( TextMessageHandlerExample . class );
public BaseResponseMessage doHandleMessage ( BaseRequestMessage requestMessage ) {
//在这里实现你自己的业务逻辑
TextRequestMessage textRequestMessage = ( TextRequestMessage ) baseRequestMessage ;
return MessageUtils . buildTextResponseMessage ( baseRequestMessage , textRequestMessage . getContent ());
}
}
@ Component
@ MessageProcessor ( messageType = MessageType . EVENT , eventType = EventType . EVENT_SUBSCRIBE )
public class SubscribeEventMessageHandlerExample extends AbstractMessageHandler {
private static final Logger LOGGER = LoggerFactory . getLogger ( SubscribeEventMessageHandlerExample . class );
@ Override
public BaseResponseMessage doHandleMessage ( BaseRequestMessage baseRequestMessage ) {
SubOrUnSubEventRequestMessage subOrUnSubEventRequestMessage = ( SubOrUnSubEventRequestMessage ) baseRequestMessage ;
//在这里实现你自己的业务逻辑
}
}
Führen Sie einfach Ihre Bewerbung aus!!
Die folgenden Beispielcode-Links zum Empfangen und Beantworten verschiedener Nachrichtentypen dienen als Referenz für die Leser.
Grundlegende Nachrichtentypen
Typ der Ereignismeldung
E-Mail: [email protected], Fehler und Vorschläge sind willkommen.
Online-Lebenslauf: https://151376liujie.github.io/resume/