tars之springboot的初步使用
公司要求使用tars框架,现学习的,听老大讲的经验和看的一些技术博客,感觉和SpringCloud有些相似,不过内部有自己的规范,基于rpc实现的服务与服务之间的远程调用,而cloud的远程调用是基于http的
下面是做的一个helloworld案例(基于springboot的)
用idea搭建一个springboot脚手架,然后导入相关依赖,引入必要的mvn插件
<dependency>
<groupId>com.tencent.tars</groupId>
<artifactId>tars-spring-boot-starter</artifactId>
<version>${tars.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- spring mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<build>
<plugins>
<!-- springboot 启动类 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>cn.zfy.tarsspringboothttpserver.TarsSpringbootHttpServerApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- tars 文件位置 -->
<plugin>
<groupId>com.tencent.tars</groupId>
<artifactId>tars-maven-plugin</artifactId>
<version>1.6.1</version>
<configuration>
<tars2JavaConfig>
<tarsFiles>
<tarsFile>${basedir}/src/main/resources/tars/hello.tars</tarsFile><!--编写tars文件的路径-->
</tarsFiles>
<tarsFileCharset>UTF-8</tarsFileCharset>
<servant>false</servant> <!--true为服务 false为client-->
<srcPath>${basedir}/src/main/java</srcPath>
<charset>UTF-8</charset>
<packagePrefixName>cn.zfy.tarsspringboothttpserver.tars.client</packagePrefixName><!--这里是生成servant或者client端代码的包的前缀-->
</tars2JavaConfig>
</configuration>
</plugin>
</plugins>
</build>
在src/resources下面新建一个dictory,命名为tars,专门用于存放tars文件,新建一个文件hello.tars
文件内容为(遵守.tars文件的书写规则):
module TestApp {
interface Hello{
string hello(int no, string name);//注意这里是小写的string,不能用我们自定义的类,经常用json做字符串和对象转换嘛
};
};
在项目路径下面执行mvn命令 mvn tars:tars2java(或者使用mvn插件,tars里面的,都一样)
这样子在刚刚pom.xml 里面 build配置的就会生成相关代码
tars服务生成一个带注解的接口,我们发现刚刚tars文件里面写的TestApp变成了报名,生成的接口名为HelloServant

来编写一个实现类,加上注解@TarsServant,并指定servant的名字为helloObj

下面生成客户端的代码

然后编写controller,对外提供http接口(后面的objName是在部署在服务器上面过后的obj全名,直接返回helloworld字符串也可以,我是http接口对外成功了的再试试调用tars接口的,这里是使用的客户端的代理对象来进行调用,
服务与服务之间也可以这样子调用)

编写项目的启动类(红色框起来的两个注解一定要,@EnableTarsServer保证部署的jar包可以用,@TarsHttpService对外提供http服务)

然后利用mvn打包工具package打成一个jar包,我们发现,gg,报错了

。。。。。。一大片红色的
问题不大,问题不大,加上一个插件,让它忽略这个好了(用启动类启动的时候也要报错,这个没问题,因为不是springboot工程,启动不了它)
打包好了

这个时候web 管理系统这边来管理部署服务
先到服务运维

然后回到服务管理这边,我们发现

点进去,发现有个发布管理

点击发布选中节点,进去部署我们的jar,选择我们需要的jar

有问题的话,重启下服务

这个时候来访问测试一下

这样子利用springboot开发一个简单的tars就ok了
新公司,第一次写相关的博客,写的不好,小生会努力的
tars之springboot的初步使用的更多相关文章
- 一些SpringBoot的初步理解
SpringBoot SpringBoot作为近几年很火的微服务框架,只需要简单的几个依赖,少量的配置,就可以使用它快速搭建一个轻量级的微服务,优点是简单.快速.大道至简,缺点是真的太单一,不适于项目 ...
- springboot 开发 Tars
1,创建 springboot 项目,并在启动类添加 @EnableTarsServer 注解 @SpringBootApplication @EnableTarsServer public clas ...
- SpringBoot AOP中JoinPoint的用法和通知切点表达式
前言 上一篇文章讲解了springboot aop 初步完整的使用和整合 这一篇讲解他的接口方法和类 JoinPoint和ProceedingJoinPoint对象 JoinPoint对象封装了Spr ...
- Flowable实战(二)集成Springboot
1.创建Springboot项目 打开IDEA,通过File -> New -> Project- -> Spring Initializr 创建一个新的Springboot项目 ...
- SpringDataJPA+QueryDSL玩转态动条件/投影查询
在本文之前,本应当专门有一篇博客讲解SpringDataJPA使用自带的Specification+JpaSpecificationExecutor去说明如何玩条件查询,但是看到新奇.编码更简单易懂的 ...
- springBoot(1)---springboot初步理解
springboot初步理解 在没有用SpringBoot之前,我们用spring和springMVC框架,但是你要做很多比如: (1)配置web.xml,加载spring和spring mvc 2) ...
- Springboot与ActiveMQ、Solr、Redis中分布式事物的初步探索
Springboot与ActiveMQ.Solr.Redis中分布式事物的初步探索 解决的场景:事物中的异步问题,当要求数据库与solr服务器的最终一致时. 程序条件: 利用消息队列,当数据库添加成功 ...
- Tars | Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录
@ 目录 前言 1. 相关环境版本: 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 2. Docker安装: 坑点三:Do ...
- Spring-Boot - 初步搭建
official document:http://projects.spring.io/spring-boot/ 项目代码: https://github.com/chenxing12/springb ...
随机推荐
- fiddler https 您的连接不是私密连接 解决方法(不明原理但是照着做成功了,记录下)
在桌面找到生成的证书 打开chrome chrome://settings/ 导入证书 再次运行fiddler,依次点击Tools下的Options,然后点HTTPS选项卡,再点击actions下的R ...
- Python---12函数式编程------12.3匿名函数&装饰器&偏函数
一.匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f( ...
- 剑指offer-18-2. 删除链表中重复的结点
剑指offer-18-2. 删除链表中重复的结点 链表 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3-> ...
- 2.mac下 安装go-ethereum
Contents 上代码 A.前期准备:http://m.2cto.com/kf/201612/573010.html (1)安装python2.7,mac在终端中直接使用以下命令:brew inst ...
- 收费的QQ群 改变的不只是所谓的在线教育
改变的不只是所谓的在线教育" title="收费的QQ群 改变的不只是所谓的在线教育"> 如果说国内互联网企业中最会捞钱的,腾讯敢认第二,恐怕没有其他的企业敢认第一 ...
- resourcequota分析(一)-evaluator-v1.5.2
什么是evaluator 大家都知道,Kubernetes中使用resourcequota对配额进行管理.配额的管理涉及两个步骤:1.计算请求所需要的资源:2.比较并更新配额.所以解读resource ...
- C++走向远洋——53(项目一1、分数类的重载、加减乘除、比较)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- GoLand 设置与配置
1. 将 tab 改为 4个空格 2. GoLand 取消 import 自动导入
- 前端如何真正晋级成全栈:腾讯 Serverless 前端落地与实践
Serverless 是当下炙手可热的技术,被认为是云计算发展的未来方向,拥有免运维.降低开发成本.按需自动扩展等诸多优点.尤其是在前端研发领域,使用 Node 开发云函数,可以让前端工程师更加专注于 ...
- XXE学习(一)——XML基础
XXE学习(一)——xml基础 一.XML简介 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据 ...