大佬教程收集整理的这篇文章主要介绍了thrift/swift:codegen-thrift java代码生成器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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
类为例,说明代码生成的过程
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.java
为thrift.test.original.TesTinterface
对应thrift service端实现类。
gen-thrift.bat
https://gitee.com/l0km/codegen/blob/master/codegen-thrift/gen-thrift.bat
gen-client.bat
https://gitee.com/l0km/codegen/blob/master/codegen-thrift/gen-client.bat
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.java
为thrift.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的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代码生成器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。