thrift/swift:codegen-thrift java代码生成器
|
codegen-thrift 是最近我完成的一个java代码生成程序,实现从普通接口类型生成基于thrift/swift框架的service/client 端封装java代码.这个工具可以让你在不修改现有的接口定义的情况下,自动生成基于现有接口的thrift service /client代码,实现client端通过网络对服务端接口的透明调用。 支持 执行 -ic,--interface-class 要生成thrift代码的接口类名 -rc,--reference-class 实现interface-class接口的一个类名(可选),如果不指定,生成的接口方法中参数名为arg1,arg2... -p,--package <arg> 输出代码的包名 -o,--output <arg> 代码输出位置 -gt,--task-type 生成代码的类型:CLIENT,SERVICE
下面以 生成service端代码java -jar targetcodegen-thrift-1.0.0-SNAPSHOT-standalone.jar ^
-ic thrift.test.original.TestInterface ^
-rc thrift.test.original.TestInterface$BaseImpl ^
-p thrift.test.service ^
-o J:codegencodegen-thriftsrctestjava ^
-gt 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 targetcodegen-thrift-1.0.0-SNAPSHOT-standalone.jar ^
-ic thrift.test.original.TestInterface ^
-rc thrift.test.original.TestInterface$BaseImpl ^
-p thrift.test.client ^
-o J:codegencodegen-thriftsrctestjava ^
--thrift-package thrift.test.client.thrift ^
-gt CLIENT
生成的代码中 启动服务因为已经基于 InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory());
ThriftServerService service = ThriftServerService.bulider()
.withServices(new TestInterfaceThriftDecorator(new TestInterface.BaseImpl()))
.setServerPort(32232)
.build();
service.startAsync();
client 端创建thrift 接口实例因为client的 // 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
