<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bestree007的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bestree007</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bestree007]]></copyright><item><title><![CDATA[redis 集群 事务 Watch is currently not supported in cluster mode]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/107056003</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/107056003</guid><author>bestree007</author><pubDate>Wed, 01 Jul 2020 09:12:55 +0800</pubDate><description><![CDATA[笔者使用了redis的key/value方式在redis里面维护了一个批量导入的进度情况，

value是一个json，里面维护了当前批量任务的进度，由于需要原子的更新任务进度，需要对value的修改使用到事务。首先想到的使用watch exec的方式。代码实现如下




/**
         * 保存导入详情结果 Description: &lt;br&gt;
         * 
         * @author bestree&lt;br&gt;
         * @taskId &.]]></description><category></category></item><item><title><![CDATA[JAVA并发编程中CompletableFuture的使用例子]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/107023245</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/107023245</guid><author>bestree007</author><pubDate>Mon, 29 Jun 2020 16:36:33 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[List转Map使用Java 8 Stream方式，解决Duplicate key冲突的问题]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/107022167</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/107022167</guid><author>bestree007</author><pubDate>Mon, 29 Jun 2020 16:01:29 +0800</pubDate><description><![CDATA[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.]]></description><category></category></item><item><title><![CDATA[SecureRandom生成随机数在个别环境超慢的问题]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/102967036</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/102967036</guid><author>bestree007</author><pubDate>Fri, 08 Nov 2019 09:56:53 +0800</pubDate><description><![CDATA[public static String getVerificationCode(int number) throws NoSuchAlgorithmException {
         StringBuilder sb = new StringBuilder();
         Random rand = SecureRandom.getInstanceStrong();
 ...]]></description><category></category></item><item><title><![CDATA[redis中键值出现  \xac\xed\x00\x05t\x00$ 的原因和解决方法]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/100103117</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/100103117</guid><author>bestree007</author><pubDate>Tue, 27 Aug 2019 16:48:36 +0800</pubDate><description><![CDATA[笔者在使用redis存放有序集合zset时，发现存放的集合中的value多了\xac\xed\x00\x05t\x00$的前缀，笔者往有序集合中存放的是字符串，结果如下图所示，出现非预期的前缀。



出现该问题的原因是，同一个应用包中的redis template之前为向redis存放使用java对象序列化的值，序列化方式和string的一般方式不同。

解决的办法，兼容原来的功能...]]></description><category></category></item><item><title><![CDATA[springboot工程接入apollo配置中心]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/98504744</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/98504744</guid><author>bestree007</author><pubDate>Mon, 05 Aug 2019 18:14:11 +0800</pubDate><description><![CDATA[工作中遇到应用配置管理的问题，在实际部署时应用会多节点部署，将配置统一到配置中心后，可以方便配置的管理，做到配置的一处修改即可。避免了登陆到部署的各个节点进行逐个修改。同时配置中心支持多命名空间，可以将公用的redis配置、mysql配置放到单独的命名空间，需要使用的模块引用对应的命名空间即可。

为了减少配置的引用，以及同时支持不接入配置中心的情况，笔者使用了稍微高一点的客户端版本。


   ...]]></description><category></category></item><item><title><![CDATA[管理系统从http切换到https]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/88709555</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/88709555</guid><author>bestree007</author><pubDate>Thu, 21 Mar 2019 11:09:41 +0800</pubDate><description><![CDATA[最近将线上的管理系统从http切换到https时遇到几个问题。

一是，我们的管理系统是前后端分离开发的，前端页面单独部署到nginx上，前端访问地址端口和后端访问地址端口不同，我们在切换到https时，希望使用子域名的方式，即page.company.com及backend.company.com的方式。和运维沟通，运维表示这种子域名的方式需要证书的支持，即https证书需要授予为*.compa...]]></description><category></category></item><item><title><![CDATA[mysql数据交换两列的数据]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/88657909</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/88657909</guid><author>bestree007</author><pubDate>Tue, 19 Mar 2019 11:20:25 +0800</pubDate><description><![CDATA[由于录入数据时有两列的数据混了，需要将个别行的记录中的两列值互换位置修复数据，比如以下对user_id为b856303e2f364558a81bb9575aed1e3c的列进行数据修复

update tc_rbac_user a, tc_rbac_user b set a.real_name=b.account_name,a.account_name=b.real_name where a.us...]]></description><category></category></item><item><title><![CDATA[单元测试覆盖率工具]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/86525126</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/86525126</guid><author>bestree007</author><pubDate>Thu, 17 Jan 2019 15:20:12 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/dcchencsdn/article/details/51791438
EclEmma

eclipse插件在线安装]]></description><category></category></item><item><title><![CDATA[SpringBoot 如何实现POJO对象列表的配置和application.properties的配置映射绑定]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/85339967</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/85339967</guid><author>bestree007</author><pubDate>Sat, 29 Dec 2018 15:55:35 +0800</pubDate><description><![CDATA[平时使用springboot来进行快速的web后端开发，有时我们会遇到将配置转换成我们代码中的Java对象(POJO)对象的问题。如果想根据一组配置，实例化成一组对象，如何优雅的根据springboot提供的功能进行实现了。下面给出了例子。


db.list[0].type=com.alibaba.druid.pool.DruidDataSource
db.list[0].url=jdbc:my...]]></description><category></category></item><item><title><![CDATA[redis的集合比较命令失效的问题 diffAndStore]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/85339346</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/85339346</guid><author>bestree007</author><pubDate>Sat, 29 Dec 2018 15:23:49 +0800</pubDate><description><![CDATA[最近在使用redis的集合命令做对账比较时，上线前一切正常，上线后差异对比失效，两个完全相同的集合，在做diffAndStore后，差异的结果不为空。

本地进行了测试，本地redis使用了集群方式，结果本地复现，复现代码如下


        // redis的key的定义
        String localBillKey = &quot;pay:reconciliation:local&quot;;
  ...]]></description><category></category></item><item><title><![CDATA[git协作不同换行符的问题解决方法]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/85235092</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/85235092</guid><author>bestree007</author><pubDate>Mon, 24 Dec 2018 16:18:32 +0800</pubDate><description><![CDATA[       在团队编程中，不同的成员往往使用不同的git提交工具，比如git bash或者git eclipse插件提交。如果都在windows下面，仍然会存在换行符不同的问题，比如gitbash提交使用LF换行。经过一番探索和尝试网上的各种解决方法，最终使用了在git仓库代码层直接新增配置.gitattributes来解决一致性问题的方法，详情参考以下链接。

https://help.git...]]></description><category></category></item><item><title><![CDATA[jaxb 根据xsd生成java对象注释乱码]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/79806898</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/79806898</guid><author>bestree007</author><pubDate>Tue, 03 Apr 2018 17:47:00 +0800</pubDate><description><![CDATA[xjc  -Dfile.encoding=UTF-8 -p com.minivision.abi.notify.model callClassConf.xsd]]></description><category></category></item><item><title><![CDATA[Intellij IDEA 代码格式化与eclipse保持风格一致]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/52219961</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/52219961</guid><author>bestree007</author><pubDate>Tue, 16 Aug 2016 14:32:21 +0800</pubDate><description><![CDATA[在使用Java开发语言团队中，每个人可能人使用不同的IDE工具进行开发，比如eclipse或者intellij IDEA。这就遇到一个现实的问题，如果保证大家的代码格式一样呢？如果风格不一样，大家在合代码时很容易出现冲突，导致合入代码很困难。
这个问题在本人工作中有遇到，有的团队成员使用eclipse，有的使用IDEA，大家的习惯代码风格不一致，导致各种合入代码困难和阅读代码困难。
如何解决这]]></description><category></category></item><item><title><![CDATA[Map转json是如何保证顺序以及Gson的单例化]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/52171369</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/52171369</guid><author>bestree007</author><pubDate>Wed, 10 Aug 2016 14:50:47 +0800</pubDate><description><![CDATA[在使用Redis缓存排序好的列表数据时，想在取数据的时候可以取列表中的某一项，于是决定使用Map来存放，并序列化这个Map. 由于Map本身是没有顺序的约束的。于是决定使用LinkedHashMap来确保key/value存放的顺序。
       但如何将这个LinkedHashMap实例安装LinedHashMap的类型转成Json呢，笔者使用fastjson时，发现其不支持这种情况。经过各]]></description><category></category></item><item><title><![CDATA[Servlet中使用Spring注入Service层]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/52171004</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/52171004</guid><author>bestree007</author><pubDate>Wed, 10 Aug 2016 14:14:37 +0800</pubDate><description><![CDATA[在工作中使用到spring的mvc框架，分为controller/service/dao三个层次。偶尔会用到servlet替换掉controller，这就遇到如何在servlet中使用注入到spring上下文中的service bean。
通过查询相关资料，可以在servlet的初始化方法中调用spring的方法进行注入
       
@Override
	public void init]]></description><category></category></item><item><title><![CDATA[Mybatis generator插件编写]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/51450935</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/51450935</guid><author>bestree007</author><pubDate>Thu, 19 May 2016 09:04:43 +0800</pubDate><description><![CDATA[generator插件编写可以参考 http://mbg.cndocs.tk/reference/plugins.html

下面以修改生成的Mapper文件为以Dao为后缀为例

package bestree.mybatis;

import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generato]]></description><category></category></item><item><title><![CDATA[beyond compare 比较class差异]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/51450800</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/51450800</guid><author>bestree007</author><pubDate>Thu, 19 May 2016 08:53:24 +0800</pubDate><description><![CDATA[对于使用Java开发的项目，在提供补丁是，通常需要比较一下补丁中的文件和现网使用的版本的差异，以确保正确地进行了修改。
笔者习惯使用beyond compare比较工具进行文件或者文件夹对比。可以从网上下载beyond compare 4.0+版本进行安装。
如果需要进行class文件差异比较，还需要安装一个插件
插件下载地址 点击打开链接
选择运行的系统，搜索class关键词，点击下载。]]></description><category></category></item><item><title><![CDATA[spring 根上下文和 spring dispatcherServlet 上下文的关系]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/51376258</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/51376258</guid><author>bestree007</author><pubDate>Wed, 11 May 2016 17:14:21 +0800</pubDate><description><![CDATA[目前的工作中使用了spring mvc，这样在web.xml中就多了一个不同的配置

DispatcherServlet
org.springframework.web.servlet.DispatcherServlet

   contextConfigLocation
   classpath:spring/dispatcher-servlet.xml

1


DispatcherServ]]></description><category></category></item><item><title><![CDATA[Navicat for Oracle 安装使用]]></title><link>https://blog.youkuaiyun.com/bestree007/article/details/51124236</link><guid>https://blog.youkuaiyun.com/bestree007/article/details/51124236</guid><author>bestree007</author><pubDate>Mon, 11 Apr 2016 19:00:06 +0800</pubDate><description><![CDATA[之前一直在找连接oracle的客户端工具，之前一直用pl/sql developer，但切换到64位系统后，之前的安装方式一直不能成功。
于是在找其他易于安装的工具。对于mysql, 之前接触过Navicat for Mysql，挺简单易用。对于Oracle， 其实还有对应的Navicat for Oracle。
可百度搜索Navicat for Oracle，可在百度软件中心获取到。
安装]]></description><category></category></item></channel></rss>