`
hellohank
  • 浏览: 143790 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
1、proto文件要放到 src/main/proto目录里。 2、proto中指定一下生成的类所在的包名,如:option java_package = "com.demo.service.grpc"; 3、生成的java文件在 target/generated-sources/protobuf目录下   PS:以上proto文件所在目录,和生成的java所在目录,可以在插件中更改。   正文:只需要在maven项目的pom.xml文件中增加以下内容即可!   <!-- 定义依赖的版本 --> <properties ...
<!-- 定义依赖的版本 --> <properties> <grpc.version>1.31.1</grpc.version> <protobuf.version>3.22.2</protobuf.version> </properties> <!-- 定义grpc相关的依赖 --> <dependencies> <dependency> <groupId& ...
在idea中编译时,出现以下错误 Malformed \uxxxx encoding.  经过各种资料和分析后,是因为依赖的jar包有下载不完整导致的。解决办法是,把这些本地maven仓库中下载有问题的jar包删除,重新打包项目即可(idea中就是reload)。 找到并删除这些有问题的jar包的方法,我写了一个java类来操作(依赖commons-io包),具体如下:   package com.tmp; import org.apache.commons.io.DirectoryWalker; import org.apache.commons.io.FileUtils ...
在实际业务场景中,有许多要用到延时消息或消费的功能,最常见的是:下订单后,半小时或指定时间段内如果没有付款,就取消订单。如果使用定时任务轮询的话,不太合适,一来定时任务有一个时间间隔,同时也会导致单线程消息的速度跟不上。 对于这类,常用的解决方案如下: 定时任务轮询 优点:简单方便,实现快速,如果使用得当,可支持分支式集群环境 缺点:轮询的时间间隔及排除处理的方式,会导致触发不及时,而且在量非常大的场景,表现越差 实现代码:略 阻塞队列:DelayQueue 优点:JDK自带,稳定可靠 缺点:考虑复杂场景时,实现较为复杂,另外,如果消息量较多时,内存成为瓶颈,分布式环 ...
使用redisson监听key过期,需要两步操作: 1、开启redis服务端的事件广播功能。 如果是自建的,则直接在redis.conf中增加或修改(修改后重启redis): notify-keyspace-events "KEx"     具体可选的选项如下(所以,上面的KEx可以看下面的含义):      K Keyspace events, published with __keyspace@<db>__ prefix. E Keyevent events, published with __keyevent@<db ...
现象:数据库可以连接,重启也正常启动。但查询数据库时,就是报下面的错误 报错:The user specified as a definer ('mysql.infoschema'@'localhost') does not exists 直观原因:就是mysql.user表里面少了一个账号信息:mysql.infoschema   解决方法: 1、使用mysql语句创建账号:CREATE USER 'mysql.infoschema'@'localhost' IDENTIFIED BY '密码'; 有可能报错:mysql8 ERROR 1726 (HY000): Storage ...
背景说明 又是记性不好的记录类文章,没有任何技术含量,只是用于防止以后换电脑搭建环境时要用的。 本次主要记录在maven中如何让jar包在多仓库中查找,直到找到为止。 方法有多种,这里说三个比较常见的。 具体步骤 自建私有nexus仓库 在私有nexus仓库中,从多个第三方仓库中获取jar包,然后在自己的maven的settings.xml中配置mirror,将所有请求映射到这个私有仓库即可。具体做法和mirror配置网上很多。mirror配置举例如下(将所有下载映射到https://repo1.maven.org/maven2/): <mirror> ...
Velocity有好几种防Xss攻击的方式,个人认为这是在“url的参数在页面中回显”情形下比较好的方式。最近记性不太好,防止忘记,还是记录保存一下。
概述          对于我们做web的来说,都会遇到这样的情况:两个人(或多个人)同时打开同一条数据的修改页面,(如果不做处理)这时候就会发生很不好的现象:最后一个提交表单的人,会把之前所有提交的修改都覆盖掉 ...
今天遇到一个诡异的问题,在系统的搜索页面的输入框中输入了一个字符串,前面带有空格,提交搜索,正常!再点搜索,擦,居然无法搜到结果!   于是查找原因吧,过程简短说明一下:    首先,我看了一下URL中的值, ...
综述(写在前面的废话) Java从诞生以来,其基因就是开放精神,也正因此,其可以得到广泛爱好者的支持和奉献,最终很快发展壮大,以至于有今天之风光!但随着java的应用领域越来越广,特别是一些功能要发布到终端用户手中(如Android开发的app),有时候,公司为了商业技术的保密考虑,不希望这里面的一些核心代码能够被人破解(破解之后,甚至可以被简单改改就发布出去,说严重点,就可能会扰乱公司的正常软件的市场行为),这时候就要求这些java代码不能够被反编译。 这里要先说一下反编译的现象。因为java一直秉持着开放共享的理念,所以大家也都知道,我们一般共享一个自己写的jar包时,同时会共享一个 ...
如果我们使用java开发Swing界面程序,运行的方法有两种: 1、直接打jar包时,指定Main的类,由Main类初始化界面。这样的好处是,可以直接通过jar包运行窗口程序(前提是机器上要装jre)。 2、通过操作系统的脚本语言,如Windows中就是cmd,后缀一般是bat(也有cmd的,bat与cmd是两个不同的命令体系,这一点大家要注意),在脚本里面调用java来启动jar包中指定的启动类即可。   以上两种方法各有优缺点: 1、直接jar包启动 优点:操作方便 缺点:需要装jre、不能在启动时指定参数、不能指定运行jar包时的内存等大小 2、使用脚本命令运行 ...
前言 这是我自己从不知道JMS为何物到学习如何使用第三方工具实现跨服务器的知识总结,在整个过程中可能考虑不全。另外,如果想尽快使用JMS,建议直接看实例那一节就可以了。有问题多交流。 词语解释 (有些词可能用的不是很正确,在这里我把自己能意识到的词拿出来解释一下): 1、  跨服务器:专业术语好像叫“跨实例”。意思是,可以在多个服务器(可以是不同的服务器,如resin与tomcat)之间相互通信。与之对应的是单服务器版。
前言 我曾在这篇博文(http://www.iteye.com/topic/1117020)中说过要分享一下浏览器插件开发的。今天,趁现在有点时间,写一下吧,呵呵。 介绍 这个介绍不是介绍浏览器市场分布,也不是介绍浏览器插件辉煌,而是说明一下浏览器 ...
中文分词 这个分词算法是基于网上一个叫IK分词算法(这里并没有使用我的那个敏感词过滤算法)!我只是将它的词表进行了优化和补充。在这个IK算法基础上主要做的就是将Lucene部分去除,只留下核心的分词逻辑。 相关 ...
Global site tag (gtag.js) - Google Analytics