美文网首页
JavaLib | 消息引擎的妙用

JavaLib | 消息引擎的妙用

作者: 冯文议 | 来源:发表于2018-09-06 12:45 被阅读5次

JavaLib开始支持消息引擎啦。这里我们以支付方式的选择来进行演示。

闲话少说,直接进入今天的主题。

项目搭建

1、你需要用Spring Boot搭建一个项目

2、引入 JavaLib

<dependencies>
    ...
    <dependency>
        <groupId>com.github.fengwenyi</groupId>
        <artifactId>JavaLib</artifactId>
        <version>1.0.4.RELEASE</version>
    </dependency>
    ...
</dependencies>

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

写代码

1、编写Handler。需要实现 Handler 接口中的 execute方法。

这里有两个,AliPayHandler, VXPayHandler。我们看一下 AliPayHandler

import com.fengwenyi.javalib.handler.Handler;
import com.fengwenyi.javalib.messageengine.CommonMessage;
import com.fengwenyi.messageengine.MEConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 支付宝支付Handler
 *
 * @author Wenyi Feng
 * @since 2018-09-06
 */
@Component
@Slf4j
public class AliPayHandler implements Handler {
    @Override
    public void execute(CommonMessage message) throws Exception {
        log.info("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");

        log.info("支付方式:{}", "支付宝");
        log.info("姓名:{}", message.getHeader(MEConstant.NAME));
        log.info("账号:{}", MEConstant.ACCOUNT);

        log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
    }
}

2、编写Bean。

import com.fengwenyi.javalib.handler.HandlerRegister;
import com.fengwenyi.messageengine.handler.AliPayHandler;
import com.fengwenyi.messageengine.handler.VXPayHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
 * Bean配置
 *
 * @author Wenyi Feng
 * @since 2018-09-06
 */
@Configuration
public class BeanConfig {

    @Autowired
    private AliPayHandler aliPayHandler;

    @Autowired
    private VXPayHandler vxPayHandler;

    @Bean
    public HandlerRegister messageEngineBean() {

        HandlerRegister handlerRegister = new HandlerRegister();

        handlerRegister.setHandler("ali", aliPayHandler);
        handlerRegister.setHandler("vx", vxPayHandler);

        return handlerRegister;
    }

}

3、写测试代码

import com.fengwenyi.javalib.handler.Handler;
import com.fengwenyi.javalib.handler.HandlerRegister;
import com.fengwenyi.javalib.messageengine.CommonMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class MessageEngineApplication {

    public static void main(String[] args) {
        SpringApplication.run(MessageEngineApplication.class, args);
    }

    @Autowired
    private HandlerRegister handlerRegister;

    @RequestMapping("/pay")
    public void pay(String type, String name, String account) {

        CommonMessage cm = new CommonMessage();
        cm.setHeader(MEConstant.NAME, name);
        cm.setHeader(MEConstant.ACCOUNT, account);

        Handler handler = handlerRegister.getHandler(type);
        try {
            handler.execute(cm);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

测试

请求URL

http://localhost:8080/pay?type=ali&name=张三&account=ali_zhangsan

打印日志(截图)

支付宝支付信息

请求URL

http://localhost:8080/pay?type=vx&name=张三&account=vx_zhangsan

打印日志(截图)

微信支付信息

资料

[1] 感谢 @毛什么文 叫我写 Bean

[2] 本节测试代码:message-engine

相关文章

  • JavaLib | 消息引擎的妙用

    JavaLib开始支持消息引擎啦。这里我们以支付方式的选择来进行演示。 闲话少说,直接进入今天的主题。 项目搭建 ...

  • JavaLib | 消息引擎的妙用

    JavaLib开始支持消息引擎啦。这里我们以支付方式的选择来进行演示。 闲话少说,直接进入今天的主题。 项目搭建 ...

  • 涨知识丨JavaLib之消息引擎的妙用

    项目搭建 1、你需要用Spring Boot搭建一个项目 2、引入 JavaLib ...

  • 消息引擎系统

    1、消息引擎系统:系统A发送消息给消息引擎系统,系统B从消息引擎系统中读取A发送的消息。 ①消息引擎传输的对象是消...

  • Apache kafka实战一 认识Kafka

    1,消息引擎系统 1)Kafka是消息引擎系统,两个重要因素: 消息设计、传输协议设计。2)Kafka消息是结构化...

  • JavaLib | result 模块

    result是什么? result 是帮助 后端 API 开发者将接口返回统一化。 样式 返回是 json 字符串...

  • JavaLib | 版本说明

    版本格式 发布版: x.x.x 测试版: x.x.x.beta.x 说明 发布版的版本号迭代更新,满10不一定进1...

  • Kafka 消息格式的演进

    消息引擎最重要的工作就是将生产者生产的消息传输到消费者,消息的格式应该要怎么设计是各大消息引擎框架最核心的问题,消...

  • Kafka-概述

    一、Kafka是什么 1.定义 Apache Kafka 是一款开源的消息引擎系统。消息引擎系统是一组规范。企业利...

  • 万亿级数据洪峰下的分布式消息引擎

    前言 通过简单回顾阿里中间件(Aliware)消息引擎的发展史,本文开篇于双11消息引擎面临的低延迟挑战,通过经典...

网友评论

      本文标题:JavaLib | 消息引擎的妙用

      本文链接:https://www.haomeiwen.com/subject/tdxxgftx.html