公司要求使用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. Cenos配置Android集成化环境, 最终Centos libc库版本过低放弃

    To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon ...

  2. Python 模块之间的引用

    项目结构: Dog.Cat模块引用Animal模块 Animal模块代码: # -*- coding:UTF-8 -*- # 定义一个动物类 class Animal(object): def run ...

  3. 吴裕雄--天生自然 python数据分析:基于Keras使用CNN神经网络处理手写数据集

    import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mp ...

  4. nginx 代理第三方邮件站点

    需求:公司业务服务器使用的是阿里云,要求内网(仅有内网IP)所有流量走网关服务器(有外网IP及内网IP),内网服务器需要调用一个公网上的第三方邮件站点.在参考了https://www.linuxba. ...

  5. GeoMesa-单机搭建

    系统安装 CentOS部署 新建虚拟电脑 类型:Linux 版本:Red Hat(64-bit) 创建虚拟硬盘 [x] 动态分配(磁盘占用较小) [ ] 固定大小(使用起来较快) 安装设置(设置roo ...

  6. 浅谈在ES5环境下实现const

    最近看到一个面试题--用ES5实现const.作为JS初学者的笔者知道在ES6中有const命令,可以用来声明常量,一旦声明,常量的值就不可改变.例如: 1234567891011 const Pi ...

  7. [python每日一练]--0012:敏感词过滤 type2

    题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...

  8. 有关终端的一些tips

    reg.exe是用于操作注册表的命令,可以通过reg /?来查看所有参数,在pentest中有两个很实用的参数 reg query 读取注册表信息, reg add 添加或修改注册表内容. 设想如下场 ...

  9. 《OneForAll框架搭建之旅》前端篇:微前端架构设计(Vue)

    心之所向,勇往直前!记录开发过程中的那些小事,给自己加点经验值. 前言 作为一个.Net后端开发,在竞争愈加激烈的当下,掌握点前端配菜好像已经是家常便饭了. 刚好在工作的第5个年头,辞去小主管职务的我 ...

  10. swoole(6)Task异步任务

    一:什么是task进程? task进程是独立与worker进程的一组进程  ,他主要处理耗时较长的业务逻辑,并且不影响worker进程处理客户端的请求.worker进程通过task()函数把数据投递到 ...