![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
bestree007
大智若愚大道至简
展开
-
redis 集群 事务 Watch is currently not supported in cluster mode
笔者使用了redis的key/value方式在redis里面维护了一个批量导入的进度情况,value是一个json,里面维护了当前批量任务的进度,由于需要原子的更新任务进度,需要对value的修改使用到事务。首先想到的使用watch exec的方式。代码实现如下/** * 保存导入详情结果 Description: <br> * * @author bestree<br> * @taskId &.原创 2020-07-01 09:12:55 · 3395 阅读 · 0 评论 -
JAVA并发编程中CompletableFuture的使用例子
import java.net.HttpURLConnection;import java.net.URLConnection;import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;import java.uti原创 2020-06-29 16:36:33 · 584 阅读 · 0 评论 -
List转Map使用Java 8 Stream方式,解决Duplicate key冲突的问题
import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.function.Function;import java.util.stream.Collectors;public class Test { public static class Stu { /** * 编号 */ private Stri.原创 2020-06-29 16:01:29 · 885 阅读 · 0 评论 -
SecureRandom生成随机数在个别环境超慢的问题
public static String getVerificationCode(int number) throws NoSuchAlgorithmException { StringBuilder sb = new StringBuilder(); Random rand = SecureRandom.getInstanceStrong(); ...原创 2019-11-08 09:56:53 · 807 阅读 · 0 评论 -
jaxb 根据xsd生成java对象注释乱码
xjc -Dfile.encoding=UTF-8 -p com.minivision.abi.notify.model callClassConf.xsd原创 2018-04-03 17:47:00 · 1782 阅读 · 0 评论 -
redis的集合比较命令失效的问题 diffAndStore
最近在使用redis的集合命令做对账比较时,上线前一切正常,上线后差异对比失效,两个完全相同的集合,在做diffAndStore后,差异的结果不为空。本地进行了测试,本地redis使用了集群方式,结果本地复现,复现代码如下 // redis的key的定义 String localBillKey = "pay:reconciliation:local"; ...原创 2018-12-29 15:23:49 · 796 阅读 · 1 评论 -
SpringBoot 如何实现POJO对象列表的配置和application.properties的配置映射绑定
平时使用springboot来进行快速的web后端开发,有时我们会遇到将配置转换成我们代码中的Java对象(POJO)对象的问题。如果想根据一组配置,实例化成一组对象,如何优雅的根据springboot提供的功能进行实现了。下面给出了例子。db.list[0].type=com.alibaba.druid.pool.DruidDataSourcedb.list[0].url=jdbc:my...原创 2018-12-29 15:55:35 · 2683 阅读 · 0 评论 -
git协作不同换行符的问题解决方法
在团队编程中,不同的成员往往使用不同的git提交工具,比如git bash或者git eclipse插件提交。如果都在windows下面,仍然会存在换行符不同的问题,比如gitbash提交使用LF换行。经过一番探索和尝试网上的各种解决方法,最终使用了在git仓库代码层直接新增配置.gitattributes来解决一致性问题的方法,详情参考以下链接。https://help.git...转载 2018-12-24 16:18:32 · 390 阅读 · 0 评论 -
springboot工程接入apollo配置中心
工作中遇到应用配置管理的问题,在实际部署时应用会多节点部署,将配置统一到配置中心后,可以方便配置的管理,做到配置的一处修改即可。避免了登陆到部署的各个节点进行逐个修改。同时配置中心支持多命名空间,可以将公用的redis配置、mysql配置放到单独的命名空间,需要使用的模块引用对应的命名空间即可。为了减少配置的引用,以及同时支持不接入配置中心的情况,笔者使用了稍微高一点的客户端版本。 ...原创 2019-08-05 18:14:11 · 1549 阅读 · 0 评论 -
redis中键值出现 \xac\xed\x00\x05t\x00$ 的原因和解决方法
笔者在使用redis存放有序集合zset时,发现存放的集合中的value多了\xac\xed\x00\x05t\x00$的前缀,笔者往有序集合中存放的是字符串,结果如下图所示,出现非预期的前缀。出现该问题的原因是,同一个应用包中的redis template之前为向redis存放使用java对象序列化的值,序列化方式和string的一般方式不同。解决的办法,兼容原来的功能...原创 2019-08-27 16:48:36 · 13311 阅读 · 3 评论 -
Map转json是如何保证顺序以及Gson的单例化
在使用Redis缓存排序好的列表数据时,想在取数据的时候可以取列表中的某一项,于是决定使用Map来存放,并序列化这个Map. 由于Map本身是没有顺序的约束的。于是决定使用LinkedHashMap来确保key/value存放的顺序。 但如何将这个LinkedHashMap实例安装LinedHashMap的类型转成Json呢,笔者使用fastjson时,发现其不支持这种情况。经过各原创 2016-08-10 14:50:47 · 12125 阅读 · 0 评论 -
Servlet中使用Spring注入Service层
在工作中使用到spring的mvc框架,分为controller/service/dao三个层次。偶尔会用到servlet替换掉controller,这就遇到如何在servlet中使用注入到spring上下文中的service bean。通过查询相关资料,可以在servlet的初始化方法中调用spring的方法进行注入 @Override public void init原创 2016-08-10 14:14:37 · 6798 阅读 · 6 评论 -
Intellij IDEA 代码格式化与eclipse保持风格一致
在使用Java开发语言团队中,每个人可能人使用不同的IDE工具进行开发,比如eclipse或者intellij IDEA。这就遇到一个现实的问题,如果保证大家的代码格式一样呢?如果风格不一样,大家在合代码时很容易出现冲突,导致合入代码很困难。这个问题在本人工作中有遇到,有的团队成员使用eclipse,有的使用IDEA,大家的习惯代码风格不一致,导致各种合入代码困难和阅读代码困难。如何解决这原创 2016-08-16 14:32:21 · 29154 阅读 · 5 评论 -
Java的Classloader机制。
Java规范中的类加载机制使用了双亲委托机制。用户自定义的ClassLoader可继承java.lang.ClassLoader,重写下面的方法。该种方法是Java1.2后推荐的作法。 /** * Finds the class with the specified binary name. * This method should be overridden原创 2013-05-19 18:57:29 · 565 阅读 · 0 评论 -
AtomicReference vs volatile
java多线程编程中一个很重要的概念是可见性 和互斥访问,互斥访问往往通过加锁来保证,但加锁往往会导致性能瓶颈。java包中提供了轻量级的原子变量,AtomicLong等,那他们和volatile有什么区别呢。基本没啥区别,volatile修饰的变量,可确保任何一个线程对该变量的修改,其他线程立刻可见。AtomicLong等原子变量类型提供了cas相关实用的方法,其内部实现也是使用了v原创 2013-05-24 23:15:42 · 801 阅读 · 0 评论 -
SAXParser线程变量化提高xml解析性能和吞吐量
xml的解析是Java程序员平常遇到的一个问题。对于解析性能也是我们比较关注的。下面是其中的一个优化点。package bestree.love;import java.io.IOException;import java.io.InputStream;import javax.xml.parsers.ParserConfigurationException;import java原创 2014-01-22 22:31:54 · 3582 阅读 · 1 评论 -
FreeMarker之思考
笔者前几周一直在学习FreeMarker,入门FreeMarker是相当容易的,其官网http://freemarker.org/有详细的中文资料,介绍了FreeMarker的各种特性。Java Object + ftl template==>html是FreeMarker应用较多的场景,其将来自Java对象的数据根据模版生成预期的html文本信息。FreeMarker被广泛应用于web服务端原创 2014-01-25 20:37:22 · 637 阅读 · 0 评论 -
zookeeper客户端和服务端交互分析
实例化zookeeper客户端后,客户端会创建ClientCnxn,其表示与服务端的连接交互对象。ClientCnxn将创建两个线程SendThread和EventThread线程。发送线程主要完成请求的发送和从服务端过来的应答的读取,对于读取的应答需要进一步处理的转由事件线程来处理。客户端和服务端之间有session的概念,客户端随机连接到zookeeper server集群中的一台机器后,原创 2014-02-08 23:21:22 · 2853 阅读 · 0 评论 -
shiro配置
filterChainDefinitions 中的roles配置表示访问对应url需要的角色的合集,需要同时具备这些角色,例如下面 /manage/** = roles[admin,manager]需要同时拥有admin以及manager角色才可以访问/manage/** 的urlroles为shiro默认提供的角色控制实现,其对应的类为R原创 2016-03-14 10:14:29 · 308 阅读 · 0 评论 -
spring 根上下文和 spring dispatcherServlet 上下文的关系
目前的工作中使用了spring mvc,这样在web.xml中就多了一个不同的配置DispatcherServletorg.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring/dispatcher-servlet.xml1DispatcherServ原创 2016-05-11 17:14:21 · 2451 阅读 · 1 评论 -
beyond compare 比较class差异
对于使用Java开发的项目,在提供补丁是,通常需要比较一下补丁中的文件和现网使用的版本的差异,以确保正确地进行了修改。笔者习惯使用beyond compare比较工具进行文件或者文件夹对比。可以从网上下载beyond compare 4.0+版本进行安装。如果需要进行class文件差异比较,还需要安装一个插件插件下载地址 点击打开链接选择运行的系统,搜索class关键词,点击下载。原创 2016-05-19 08:53:24 · 12645 阅读 · 0 评论 -
Mybatis generator插件编写
generator插件编写可以参考 http://mbg.cndocs.tk/reference/plugins.html下面以修改生成的Mapper文件为以Dao为后缀为例package bestree.mybatis;import org.mybatis.generator.api.IntrospectedTable;import org.mybatis.generato原创 2016-05-19 09:04:43 · 556 阅读 · 0 评论 -
Java线程优先级和线程暂停恢复的问题
在Java中,使用一个线程以抢占方式暂停其他的线程是很难的。尽管Java API中提供了Thread的suspend和resume方法,但这些方法又是不建议使用的,因为它们常常会导致死锁。如果一个应用线程在运行到一个同步方法中时被暂停,这常会导致死锁。 标准的JVM支持Java线程根据设定的优先级进行调度,但它不保证这一定生效。使用API设定Java线程的优先级被JVM认为是一种提示,设定是原创 2013-03-17 17:28:58 · 662 阅读 · 0 评论