公司要求使用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的初步使用的更多相关文章

  1. 一些SpringBoot的初步理解

    SpringBoot SpringBoot作为近几年很火的微服务框架,只需要简单的几个依赖,少量的配置,就可以使用它快速搭建一个轻量级的微服务,优点是简单.快速.大道至简,缺点是真的太单一,不适于项目 ...

  2. springboot 开发 Tars

    1,创建 springboot 项目,并在启动类添加 @EnableTarsServer 注解 @SpringBootApplication @EnableTarsServer public clas ...

  3. SpringBoot AOP中JoinPoint的用法和通知切点表达式

    前言 上一篇文章讲解了springboot aop 初步完整的使用和整合 这一篇讲解他的接口方法和类 JoinPoint和ProceedingJoinPoint对象 JoinPoint对象封装了Spr ...

  4. Flowable实战(二)集成Springboot

    1.创建Springboot项目   打开IDEA,通过File -> New -> Project- -> Spring Initializr 创建一个新的Springboot项目 ...

  5. SpringDataJPA+QueryDSL玩转态动条件/投影查询

    在本文之前,本应当专门有一篇博客讲解SpringDataJPA使用自带的Specification+JpaSpecificationExecutor去说明如何玩条件查询,但是看到新奇.编码更简单易懂的 ...

  6. springBoot(1)---springboot初步理解

    springboot初步理解 在没有用SpringBoot之前,我们用spring和springMVC框架,但是你要做很多比如: (1)配置web.xml,加载spring和spring mvc 2) ...

  7. Springboot与ActiveMQ、Solr、Redis中分布式事物的初步探索

    Springboot与ActiveMQ.Solr.Redis中分布式事物的初步探索 解决的场景:事物中的异步问题,当要求数据库与solr服务器的最终一致时. 程序条件: 利用消息队列,当数据库添加成功 ...

  8. Tars | Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录

    @ 目录 前言 1. 相关环境版本: 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 2. Docker安装: 坑点三:Do ...

  9. Spring-Boot - 初步搭建

    official document:http://projects.spring.io/spring-boot/ 项目代码: https://github.com/chenxing12/springb ...

随机推荐

  1. 纯js文件弹出窗写法

    <dialog id="myDialog"> 01234567890 <a href="javascript:;" id="clos ...

  2. python 使用 UTF-8 编码

    题记 一般我喜欢用 utf-8 编码,在 python 怎么使用呢? 使用utf-8 文字 在 python 源码文件中用 utf-8 文字.一般会报错,如下: File "F:\works ...

  3. python爬取许多图片的代码

    from bs4 import BeautifulSoup import requests import os os.makedirs('./img/', exist_ok=True) URL = & ...

  4. 用Express 4和 MongoDB打造Todo List

    本篇文章主要參考自DreamersLab - 用Express和MongoDB寫一個todo list.原文的教學內容是使用Express 3.x版,在這邊做簡單Express 4.12.1的todo ...

  5. rsync auth failed on module xxx

    rsync 报错 "auth failed on module xxx", 一般有三种情况造成: 密码文件格式错误: 服务端密码文件的格式是: user:password 每个一行 ...

  6. 改了改之前那个很糙的XXX

    将就着用X度去爬吧 <?php echo "***************************************\r\n"; echo "* SubDom ...

  7. 从租人APP沦为性工作发布平台 看共享经济监管边界

    看共享经济监管边界" title="从租人APP沦为性工作发布平台 看共享经济监管边界"> 继直播类软件部分涉黄之后,最近火爆的各类"租人"软件 ...

  8. 虚拟桌面软件CitrixReceiver相关问题

    由于安过一次,卸载再次安装程序报错: 原因:卸载不干净,导致再次安装部分插件未成功安装 解决: 1.在控制面板卸载Citrix receiver 2.删除C:\Program Files (x86)\ ...

  9. Twins:眼红红 - fancybot的博客

    "我最初面红.现在双眼通红" TWINS 听听歌.小时候.听得最最最多的就是TWINS的了 跳过图片 跳过歌词 眼红红 Twins 仍然怀念他 一起去学结他 一对黑眼圈 回望中三暑 ...

  10. python中使用paramiko模块并实现远程连接服务器执行上传下载

    paramiko模块 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系 ...