thriftswift:codegen-thrift java代码生成器

thriftswift:codegen-thrift java代码生成器,第1张

概述codegen-thrift 是最近我完成的一个java代码生成程序,实现从普通接口类型生成基于thrift/swift框架的service/client 端封装java代码.这个工具可以让你在不修改现有的接口定义的情况下,自动生成基于现有接口的thrift service /client代码,实现client端通过网络对服务端接口的透明调用。 支持byte[],Date,float,Float,

codegen-thrift 是最近我完成的一个java代码生成程序,实现从普通接口类型生成基于thrift/swift框架的service/clIEnt 端封装java代码.这个工具可以让你在不修改现有的接口定义的情况下,自动生成基于现有接口的thrift service /clIEnt代码,实现clIEnt端通过网络对服务端接口的透明调用。

支持byte[],Date,float,float,URI,URL类型的自动转换.

执行 java -jar target/codegen-thrift-1.0.0-SNAPSHOT-standalone.jar -help 显示运行参数说明.
参数说明

-ic,--interface-class 要生成thrift代码的接口类名     -rc,--reference-class 实现interface-class接口的一个类名(可选),如果不指定,生成的接口方法中参数名为arg1,arg2...      -p,--package <arg> 输出代码的包名     -o,--output <arg> 代码输出位置     -gt,--task-type 生成代码的类型:CLIENT,SERVICE

下面以thrift.test.original.TestInterface类为例,说明代码生成的过程

生成service端代码
java -jar target\codegen-thrift-1.0.0-SNAPSHOT-standalone.jar ^    -ic thrift.test.original.TestInterface ^     -rc thrift.test.original.TestInterface$BaseImpl ^    -p thrift.test.service ^    -o J:\codegen\codegen-thrift\src\test\java ^    -gt SERVICE

生成代码中https://gitee.com/l0km/codegen/blob/master/codegen-thrift/src/test/java/thrift/test/service/TestInterfaceThriftDecorator.javathrift.test.original.TestInterface对应thrift service端实现类。

生成thrift clIEnt代码 生成IDL文件
gen-thrift.bat

https://gitee.com/l0km/codegen/blob/master/codegen-thrift/gen-thrift.bat

生成thrift clIEnt端数据类型及接口定义
gen-clIEnt.bat

https://gitee.com/l0km/codegen/blob/master/codegen-thrift/gen-client.bat

生成 clIEnt代码:
java -jar target\codegen-thrift-1.0.0-SNAPSHOT-standalone.jar ^    -ic thrift.test.original.TestInterface ^    -rc thrift.test.original.TestInterface$BaseImpl ^    -p thrift.test.clIEnt ^    -o J:\codegen\codegen-thrift\src\test\java ^    --thrift-package thrift.test.clIEnt.thrift ^    -gt CLIENT

生成的代码中https://gitee.com/l0km/codegen/blob/master/codegen-thrift/src/test/java/thrift/test/client/TestInterfaceThriftClient.javathrift.test.original.TestInterface接口对应的 thrift clIEnt端实现。

启动服务

因为已经基于TestInterface接口自动生成了对应的service服务实现TestInterfaceThriftDecorator,所以将一个TestInterface接口实例启动为thrift服务就非常简单了:

InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory());    ThriftServerService service = ThriftServerService.bulIDer()            .withServices(new TestInterfaceThriftDecorator(new TestInterface.BaseImpl()))            .setServerPort(32232)            .build();    service.startAsync();
clIEnt 端创建thrift 接口实例

因为clIEnt的TestInterfaceThriftClIEnt基于thrift框架实现了TestInterface接口,只要创建了TestInterfaceThriftClIEnt实例,就可以像普通的接口实例一样调用,网络传输,数据类型转换等工作都由TestInterfaceThriftClIEnt自动完成。

// TestInterface 的thrift clIEnt实例    TestInterface clIEntInstance = ClIEntFactory            .builder()            .setHostAndPort("127.0.0.1",32232)            .build(TestInterface.class,TestInterfaceThriftClIEnt.class);    // 调用接口    clIEntInstance.test(null,null,null);
生成代码的依赖
<dependency>    <groupID>com.gitee.l0km</groupID>    <artifactID>common-thrift</artifactID>    <version>1.0.3-SNAPSHOT</version></dependency>

依赖库git仓库https://gitee.com/l0km/common-java/tree/master/common-thrift

总结

以上是内存溢出为你收集整理的thrift/swift:codegen-thrift java代码生成器全部内容,希望文章能够帮你解决thrift/swift:codegen-thrift java代码生成器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1055309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存