创建Thrift接口文件和生成对应的源文件

1、创建一个person.thrift文件,添加如下内容:

namespace java cn.horace.thrift.idl // 定义命名空间

// include "test.thrift" // 包含外部的接口文件

/* 定义一个Person类 */
struct User
{
    1: i32 id, // Id
    2: string username, // 名称
    3: optional string nickname, // 昵称
    4: optional i32 gender, // 性别,1:男,2:女,3:其他
    5: optional string email, // 邮箱
}


/* 服务接口 */
service IUserService
{
    /* 添加一个用户 */
    void add(1:User user),

    /* 根据Id删除一个用户 */
    void deleteById(1:i32 id),

    /* 根据Id更新一个用户 */
    void updateById(1:User user),

    /* 根据Id查询一个用户 */
    User findById(1:i32 id),

    /* 查询全部用户 */
    list<User> findAll(),
}

 

2、下载Thrift的编译文件,注意需要对应好jar包版本:http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.2/thrift-0.9.2.exe

3、生成Java文件

thrift-0.9.2.exe -gen java person.thrift

 

转载于:https://www.cnblogs.com/horace/p/4415872.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
thrift-generator 是通过 Java接口生成 thrift 文件的工具。例子:public interface ICommonUserService {     public User login(int id, String name);     public User getUserById(long id);     public boolean saveUser(User user);     public List getUserIds(long id);      public Map getUserByIds(List ids);     public Map<String, List> getUsersByName(List names);     public Map<Long, List> getGroupUsers(List names, List userList, List lns, long ll);     public List testCase1(Map num1, List num2, List 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);     } }执行代码:mvn test -Dtest=com.sohu.thrift.generator.builder.ThriftStructBuilderTest之后控制台输出如下: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 ids,             6:Account account     }     service ICommonUserService {             User login(1:i32 arg0,2:string arg1),             map<string, list> getUsersByName(1:list arg0),             bool saveUser(1:User arg0),             map getUserByIds(1:list arg0),             list getUserIds(1:i64 arg0),             map<i64, list> getGroupUsers(1:list arg0,2:list arg1,3:list arg2,4:i64 arg3),             User getUserById(1:i64 arg0),             list testCase1(1:map arg0,2:list arg1,3:list arg2,4:i64 arg3,5:string arg4)     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值