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 ...
随机推荐
- js 原生轮播图插件
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Django中加载static无法成功的解决方法
我试着进入/admin/ 结果它的/static/ 能够正常找到目标文件…真是日了哈*奇了. 我的link标签href=/static/…. 并没有什么问题 试着在urls中加入下面代码,但是没什么用 ...
- SpringMVC之请求响应(上)
1.OutPutController package com.tz.controller; import java.util.Map; import org.springframework.stere ...
- 聊聊 Airtest 自动化工具
阅读文本大概需要 5 分钟. 很多读者看过之前的文章,发现我使用最多的是一款 Airtest 的自动化测试框架. Airtest 是一款适合于游戏和 App 的 UI 自动化测试框架. 下面对 Air ...
- 身为 Java 程序员必须掌握的 10 款开源工具!
本文主要介绍Java程序员应该在Java学习过程中的一些基本和高级工具.如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是,现在就是是开始学习这些工具的好时机.Java世界中存 ...
- unittest实战(四):用例编写
import yamlimport unittestfrom selenium import webdriverimport timefrom ddt import ddt, data, unpack ...
- TCP/IP协议族的四个层次
OSI7层模型的小结 : 在7层模型中,每一层都提供一个特殊的网络功能.从网络功能的角度看:下面4层(物理层.数据链路层.网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主:第4 ...
- Java中如何更优雅的处理空值
经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系.但它会让你很头疼.有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务 ...
- javascript常用工具函数总结(不定期补充)未指定标题的文章
前言 以下代码来自:自己写的.工作项目框架上用到的.其他框架源码上的.网上看到的. 主要是作为工具函数,服务于框架业务,自身不依赖于其他框架类库,部分使用到es6/es7的语法使用时要注意转码 虽然尽 ...
- [React技术内幕] setState的秘密
对于大多数的React开发者,setState可能是最常用的API之一.React作为View层,通过改变data从而引发UI的更新.React不像Vue这种MVVM库,直接修改data并不能视图的改 ...