- 浏览: 146047 次
- 性别:
- 来自: 南京
最新评论
-
chenyanxuan:
假如每个敏感词的开头都不一样,那么,DFA算法是不是只剩下弊端 ...
敏感词过滤算法实现 -
zhoupan301415:
写的非常不错,虽然代码量,但是考虑的还是很周全的,灵活性,扩展 ...
基于java反射的验证框架 -
phoenixcwx:
新入行菜鸟感谢分享,学到不少东西,顺便问一句,Java中使 ...
Java防反编译技术实现探讨 -
hellohank:
燃木刀法 写道楼主,怎么实现替换功能呀 调用KWSeeker. ...
敏感词过滤算法实现 -
燃木刀法:
楼主,怎么实现替换功能呀
敏感词过滤算法实现
文章列表
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 ...
记一次mysql用户消失问题
- 博客分类:
- 其它技术
现象:数据库可以连接,重启也正常启动。但查询数据库时,就是报下面的错误
报错: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与ActiveMQ实践与应用
- 博客分类:
- 消息中间件
前言
这是我自己从不知道JMS为何物到学习如何使用第三方工具实现跨服务器的知识总结,在整个过程中可能考虑不全。另外,如果想尽快使用JMS,建议直接看实例那一节就可以了。有问题多交流。
词语解释
(有些词可能用的不是很正确,在这里我把自己能意识到的词拿出来解释一下):
1、 跨服务器:专业术语好像叫“跨实例”。意思是,可以在多个服务器(可以是不同的服务器,如resin与tomcat)之间相互通信。与之对应的是单服务器版。
Maxthon插件开发
- 博客分类:
- 浏览器插件
前言
我曾在这篇博文(http://www.iteye.com/topic/1117020)中说过要分享一下浏览器插件开发的。今天,趁现在有点时间,写一下吧,呵呵。
介绍
这个介绍不是介绍浏览器市场分布,也不是介绍浏览器插件辉煌,而是说明一下浏览器 ...
高亮显示与拼音汉字互转及文本相似度匹配
- 博客分类:
- 其它技术
中文分词
这个分词算法是基于网上一个叫IK分词算法(这里并没有使用我的那个敏感词过滤算法)!我只是将它的词表进行了优化和补充。在这个IK算法基础上主要做的就是将Lucene部分去除,只留下核心的分词逻辑。
相关 ...