很早之前写的一个工具,面向的用户主要有两种
1.没接触thrift,但是希望使用thrift的用户,可以便于新用户的理解
2.之前用的是rmi,之后想转成thrift的用户
example
public interface ICommonUserService {
public User login(int id, String name);
public User getUserById(long id);
public boolean saveUser(User user);
public List<User> getUserIds(long id);
public Map<Long, User> getUserByIds(List<User> ids);
public Map<String, List<User>> getUsersByName(List<String> names);
public Map<Long, List<Long>> getGroupUsers(List<String> names, List<User> userList, List<Long> lns, long ll);
public List<String> testCase1(Map<Integer,String> num1, List<User> num2, List<String> num3, long num4, String num5);
}
public class ThriftStructBuilderTest {
private ThriftFileBuilder fileBuilder = new ThriftFileBuilder();
@Test
public void toOutputstream() throws Exception {
this.fileBuilder.buildToOutputStream(ICommonUserService.class, System.out);
}
}
执行之后会在控制台输入如下:
namespace java com.sohu.thrift.generator.test.thrift
enum Status {
NORMAL = 0,
BLOCKED = 1
}
struct Account {
1:i32 id,
2:string name
}
struct User {
1:i32 id,
2:string name,
3:bool sex,
4:Status status,
5:list<i64> ids,
6:Account account
}
service ICommonUserService {
User login(1:i32 arg0,2:string arg1),
map<string, list<User>> getUsersByName(1:list<string> arg0),
bool saveUser(1:User arg0),
map<i64, User> getUserByIds(1:list<User> arg0),
list<User> getUserIds(1:i64 arg0),
map<i64, list<i64>> getGroupUsers(1:list<string> arg0,2:list<User> arg1,3:list<i64> arg2,4:i64 arg3),
User getUserById(1:i64 arg0),
list<string> testCase1(1:map<i32, string> arg0,2:list<User> arg1,3:list<string> arg2,4:i64 arg3,5:string arg4)
}
相关推荐
描述中的"thrift-0.9.1桌面生成代码工具,免安装版本,可直接生成thrift代码的工具(0.9.1版本)"进一步强调了这个工具的特性,它是一个桌面应用程序,专为生成Thrift代码而设计,并且用户可以轻松下载后立即使用,...
这个压缩包提供了一个完整的 Thrift Java 开发环境,包括了服务接口定义、实现和运行时所需的所有依赖,使得开发者可以快速搭建和测试基于 Thrift 的 Java 应用。在实际项目中,根据需求选择合适版本的库,并结合...
总的来说,Thrift是一个强大的工具,它简化了分布式系统开发中的通信难题,提供了统一的接口定义和代码生成机制,使得开发人员可以专注于业务逻辑,而不是底层通信协议。在你的项目中,通过正确使用这个工具和相关的...
使用thrift编译器,我们可以将上面的.thrift文件转换为Java、C++等语言的代码。生成的代码包括服务接口、结构体类、协议处理类等,这些代码可以直接在项目中使用。 四、服务端实现 在Java环境中,服务端需要实现...
总结起来,Thrift是实现跨语言服务调用的强大工具,通过其IDL和生成的代码,开发者可以轻松地在Java和Python等不同语言之间建立高效、可靠的通信。这个例子提供了学习和实践Thrift的一个基础起点,对于理解跨语言...
通过Java接口创建Thrift文件 功能列表 支持参数名 支持注释 支持自定义异常 例子 public interface ICommonUserService { public User login ( int id , String name ); public User getUserById ( long id ); ...
thrift-generator 是通过 Java 的接口生成 thrift 文件的工具。例子:public interface ICommonUserService { public User login(int id, String name); public User getUserById(long id); ...
Java代码自动生成是一个高效且实用的编程技巧,它可以帮助开发者减少重复劳动,提高代码质量和开发效率。在Java中,可以通过各种方式实现代码自动生成,包括使用模板引擎、元编程技术以及利用第三方库。以下将详细...
在Python中,Thrift库提供了一组工具和库,包括一个编译器,该编译器将服务接口的定义(通常是一个`.thrift`文件)转换为Python代码。这些生成的Python类和函数使得在服务端实现接口并在客户端调用变得简单。Thrift...
这将生成一个包含服务接口、数据结构类和必要的辅助类的Java包。执行命令: ``` thrift -gen java ThriftService.thrift ``` 3. 实现服务端: 在生成的Java代码中,找到`ThriftService$Iface`接口,实现你需要...
这个案例中的“MyThriftWebTest”可能是一个包含整个实现的测试工程,包括Thrift服务的定义、生成的Java代码以及Servlet的实现。通过运行这个测试工程,你可以了解如何将Thrift服务部署到支持HTTP的服务器上,如...
Thrift-0.8.0是该框架的一个特定版本,它包含了编译工具和其他相关资源,用于生成不同语言的客户端和服务器端代码。 Thrift的主要组件包括: 1. **IDL(接口定义语言)**:Thrift使用类似C++的语法定义服务接口和...
例如,如果使用Java,会生成一个包含服务接口和服务处理类的Java包。服务端需要实现这些接口并启动Thrift服务器,而客户端则可以使用生成的客户端类来调用远程服务。 在部署Thrift服务时,通常需要将Thrift依赖的...
例如,可能会有一个`Service.thrift`文件,其中定义了一个名为`MyService`的服务,包含若干个远程调用(RPC)方法。 2. 服务端代码:根据IDL文件生成的服务端代码,实现了服务接口。在Java中,这可能是`...
首先,我们需要创建一个`.thrift`文件,声明服务接口和数据类型。例如: ```thrift service MyService { string sayHello(1: string name) } ``` 在这个例子中,我们定义了一个名为`MyService`的服务,其中有一个...
Thrift文件(.thrift)是接口定义语言(IDL),用于描述服务和数据类型。生成的代码支持多种编程语言,如Java、Python、C++等,使得跨平台通信变得简单。 2. **Wireshark配置** - 安装Wireshark:首先确保你的系统...
6. **服务启动与调用**:在Java实例中,你需要启动Thrift服务(服务器端),然后在另一个应用程序(客户端)中通过生成的客户端代码调用服务。这涉及到了网络通信和异步/同步调用的概念。 7. **测试**:文件"test...
在Java服务端,开发者首先会定义一个Thrift IDL(接口定义语言)文件,这个文件中包含了服务的接口和数据结构。例如,可能有一个`Calculator`服务,包含加减乘除等操作。通过Thrift的编译器,这个IDL文件会被转换成...
Apache Thrift 是一款...总的来说,Apache Thrift为Java开发者提供了一个强大而灵活的工具,帮助他们构建高效、可扩展的分布式系统。通过这个实战源码,你可以深入理解Thrift的工作原理,并将其应用到自己的项目中。
Thrift提供了编译器,可以将服务接口定义(通常是一个.thrift文件)转换为多种编程语言的代码。这个接口定义文件包含了服务的结构、方法以及它们的参数和返回类型。例如,在Hadoop场景中,可能有一个thrift文件定义...