您现在的位置是:首页 > 文章详情

JavaLib | 消息引擎的妙用

日期:2018-09-05点击:334

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

原文链接:https://yq.aliyun.com/articles/636299
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章