<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sijihereshui的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sijihereshui</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sijihereshui]]></copyright><item><title><![CDATA[linux常用操作指南]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/115721814</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/115721814</guid><author>sijihereshui</author><pubDate>Thu, 15 Apr 2021 14:01:53 +0800</pubDate><description><![CDATA[1. 文件打包，解压命令tar

实例

压缩文件 非打包


# touch a.c       
# tar -czvf test.tar.gz a.c   //压缩 a.c文件为test.tar.gz
a.c

列出压缩文件内容


# tar -tzvf test.tar.gz 
-rw-r--r-- root/root     0 2010-05-24 16:51:59 a.c

解压文件


# tar -xzvf test.tar.gz 
a.c

参数含义

-f &lt;备份文件&gt;或]]></description><category></category></item><item><title><![CDATA[spring boot 事务使用究极指南]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/114938968</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/114938968</guid><author>sijihereshui</author><pubDate>Wed, 24 Mar 2021 15:53:25 +0800</pubDate><description><![CDATA[1. spring事务有编程式事务，和声明式事务

编程式事务：
]]></description><category></category></item><item><title><![CDATA[mysql linux操作手册]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/114938295</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/114938295</guid><author>sijihereshui</author><pubDate>Wed, 17 Mar 2021 17:09:58 +0800</pubDate><description><![CDATA[1.开启和关闭



1.1.开启

　　service mysql start



1.2.关闭

　　service mysql stop



1.3.重启

　　service mysql restart

2.登录



2.1.密码明文

　　语法：mysql -u用户名 -p用户密码

　　举例：mysql -uroot -p123456



2.2.密码密文

　　语法：mysql -u用户名 -p+回车，然后输入密码

　　举例：mysql -uroot -p　　



3.1.SET]]></description><category></category></item><item><title><![CDATA[spring aop 切面执行顺序和常见问题]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/114519828</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/114519828</guid><author>sijihereshui</author><pubDate>Mon, 08 Mar 2021 09:48:58 +0800</pubDate><description><![CDATA[切面注解的执行顺序


public Object aop(Method method,Object object) {
    try {
        try {
            /*doAround start*/
            doBefore();
            method.invoke(object);
            /*doAround end*/
        } finally {
            doAfter();
        }]]></description><category></category></item><item><title><![CDATA[shardingJDBC奇技淫巧之动态分库]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/107390042</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/107390042</guid><author>sijihereshui</author><pubDate>Thu, 16 Jul 2020 19:20:32 +0800</pubDate><description><![CDATA[前言

众所周知，shardingJdBC不支持动态分库分表，需要提前将数据库的表和库创建好，根据指定的算法去将数据插入对应的表和库。为了满足业务需求，就出现了各式各样的动态分库分表的方法。

方法一，配置中心动态修改数据源配置文件的方法

首先看源码

实现方法，首先监听necos数据源配置，修改之后，获取ShardingDataSource所有的数据源,根据数据库名称（就是map的key）去查询该数据源是否注册，没有注册，就根据对应的necos配置注册新的数据源，到map里面。


//伪代码示例
 D]]></description><category></category></item><item><title><![CDATA[dozer使用指南，自定义属性转换器]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/107212859</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/107212859</guid><author>sijihereshui</author><pubDate>Wed, 08 Jul 2020 19:13:13 +0800</pubDate><description><![CDATA[项目中用到了VO，DTO和DO。涉及到了对象的转换，顾使用dozer做对象转换，dozer是通过反射做的，因此效率并不高，推荐使用MapStruct。

dozer自定义属性转换器

dozer属性间的定制转换可以通过XML配置，官网只展示简单的例子。


// 现需要对象VO转为DTO
@Data
class VO{
    private String id;
    @Valid
  private List&lt;ExtensionVO&gt; extensions;//扩展项
}

Class D]]></description><category></category></item><item><title><![CDATA[debain apt/apt-get：The following signatures were invalid: KEYEXPIRED 解决]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/106833043</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/106833043</guid><author>sijihereshui</author><pubDate>Thu, 18 Jun 2020 13:52:19 +0800</pubDate><description><![CDATA[debain联网配置,桥接模式

/etc/network/inetface



参考原文地址

系统是debain 5正确方案

于是继续搜索，在官方文档的FAQ部分，找到了官方解答。

1.修改 source.list


deb http://archive.debian.org/debian squeeze main
deb http://archive.debian.org/debian squeeze-lts main


2.同时配置 apt，添加以下内容到 /etc/apt/apt.co.]]></description><category></category></item><item><title><![CDATA[LocalDateTime的序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/106102368</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/106102368</guid><author>sijihereshui</author><pubDate>Wed, 13 May 2020 17:16:58 +0800</pubDate><description><![CDATA[数据库实体表时间类型使用LocalDateTime


    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //添加该注解使用json解析时为"yyyy-MM-dd HH:mm:ss"
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @TableField("UPDATED_TIME")
    private LocalDateTime updatedTime;

json解析]]></description><category></category></item><item><title><![CDATA[数据库索引总结]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/104143070</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/104143070</guid><author>sijihereshui</author><pubDate>Sun, 02 Feb 2020 15:48:25 +0800</pubDate><description><![CDATA[数据库索引多采用B+tree,也有hash索引。

B+ Tree索引和Hash索引区别哈希索引适合等值查询，但是不无法进行范围查询 哈希索引没办法利用索引完成排序 哈希索引不支持多列联合索引的最左匹配规则 如果有大量重复键值得情况下，哈希索引的效率会很低，因为存在哈希碰撞问题

索引简单论述的文章

InnoDB的B+ Tree可能存储的是整行数据，也有可能是主键的值。

在 InnoDB 里...]]></description><category></category></item><item><title><![CDATA[idea手动添加jar包]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/103783511</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/103783511</guid><author>sijihereshui</author><pubDate>Tue, 31 Dec 2019 15:31:50 +0800</pubDate><description><![CDATA[同事写的jar包，目前还在测试但是我项目需要依赖。

1. 首先在idea 项目下建一个文件夹lib,如图所示。



2. 在build.gradle依赖里面添加这个


compile fileTree(dir:'libs',includes:['*.jar'])

3. 之后就可以正常使用了


...]]></description><category></category></item><item><title><![CDATA[httpClient4.0 使用心得]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/103582571</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/103582571</guid><author>sijihereshui</author><pubDate>Tue, 17 Dec 2019 16:17:08 +0800</pubDate><description><![CDATA[不走弯路，详细记载httpclient使用方法
]]></description><category></category></item><item><title><![CDATA[countDownLatch简单分析]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/103136062</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/103136062</guid><author>sijihereshui</author><pubDate>Tue, 19 Nov 2019 09:51:54 +0800</pubDate><description><![CDATA[先参考这篇文章，后续在补充
]]></description><category></category></item><item><title><![CDATA[SignedAndEnvelopedData 使用和构造]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/102938344</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/102938344</guid><author>sijihereshui</author><pubDate>Wed, 06 Nov 2019 17:03:51 +0800</pubDate><description><![CDATA[SignedAndEnvelopedData

Pkcs7的一种结构，用来包装加密的私钥。结构如下：


Purpose:数字信封

SignedAndEnvelopedData ::= SEQUENCE {
  version         INTEGER {seVer1(1), seVer2(2)} (seVer1 | seVer2),
  recipientInfos  Recipient...]]></description><category></category></item><item><title><![CDATA[java JNI 编译 .h头文件]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/102813457</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/102813457</guid><author>sijihereshui</author><pubDate>Wed, 30 Oct 2019 10:15:00 +0800</pubDate><description><![CDATA[工具用久了，练java编译也忘记如何使用了。

使用javah 命令编译native文件。

1. 命令javah -cp D:\work\idea;D:\work\oiu.jar -d jni com.ojbk.HelloWorld

-cp 后面可以跟多个路径，win用；隔开，linux用：隔开 ，本文第一个表示类的路径，第二个表示依赖的jar包

-d 输出的文件夹 jni 就表示...]]></description><category></category></item><item><title><![CDATA[linux ubuntu 配置环境]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/100893166</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/100893166</guid><author>sijihereshui</author><pubDate>Mon, 16 Sep 2019 16:44:37 +0800</pubDate><description><![CDATA[配置IP 修改 /etc/network/interface

# sudo apt-get update 报错域名无法解析

解决办法 ：

既然提示域名解析失败，那么就想办法加一个万能的域名：

1、编辑文件sudo vim /etc/resolv.conf

2、在最后加上 nameserver 8.8.8.8

3、保存退出

还是不行的话 设置网络适配器调整为桥接 连接网络

安装配...]]></description><category></category></item><item><title><![CDATA[java 编程习惯性能]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/100036696</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/100036696</guid><author>sijihereshui</author><pubDate>Fri, 23 Aug 2019 13:58:49 +0800</pubDate><description><![CDATA[1. 遍历MAP集合

从工作到现在一直习惯使用Keyset去遍历Map,并没有觉得不妥，偶然看见同事的遍历方法：


for (Map.Entry&lt;String, Object&gt; entry : mapData.entrySet()) {
                if (mapping.containsKey(entry.getKey())) {
              ...]]></description><category></category></item><item><title><![CDATA[java 编程习惯总结]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/97624189</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/97624189</guid><author>sijihereshui</author><pubDate>Tue, 30 Jul 2019 18:12:35 +0800</pubDate><description><![CDATA[工具类的书写

1. 隐藏实现

项目中要使用工具类，可以直接使用第三方工具包，或自己实现，但在业务中使用时一定不要直接使用第三方的包，建议自己实现工具方法调用第三方包，以防后续更改。


@SneakyThrows
public static void copyAttribute(Object source, Object dest) {
  org.apache.commons.bean...]]></description><category></category></item><item><title><![CDATA[rabbitMQ学习记录1]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/89567661</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/89567661</guid><author>sijihereshui</author><pubDate>Fri, 26 Apr 2019 18:00:49 +0800</pubDate><description><![CDATA[最近工作中需要用到rabbitmq,踩到的坑记录一下。

1. windows安装rabbit

按这个配置即可

2. 启动rabbit

默认的用户为guest,该账号自能让我们本机登录，为了远程使用再创建一个。

按他教的创建用户，Vhost,各种权限

1. 个人认为web页面创建更简单一点。



权限选择admin。

2. 之后点击管理员的名字，给他所有的权限都赋予一遍





...]]></description><category></category></item><item><title><![CDATA[js前端操作checkbox赋值与取值]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/89449225</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/89449225</guid><author>sijihereshui</author><pubDate>Mon, 22 Apr 2019 16:54:03 +0800</pubDate><description><![CDATA[1. 获取到页面的元素往chackbox赋值

2. 遍历页面checkbox所有值拼成一个字符串。

上代码：



&lt;script LANGUAGE="JavaScript"&gt;
    $(document).ready(function () {
        $.ajax({
            url: '/app/certpolicy.json',
         ...]]></description><category></category></item><item><title><![CDATA[js 操作json数据]]></title><link>https://blog.youkuaiyun.com/sijihereshui/article/details/89440260</link><guid>https://blog.youkuaiyun.com/sijihereshui/article/details/89440260</guid><author>sijihereshui</author><pubDate>Sun, 21 Apr 2019 21:43:20 +0800</pubDate><description><![CDATA[从json文件获取数据


$(function(){
            $.ajax({
                type: "POST",//请求方式
                url: "item.json",//地址，就是json文件的请求路径
                dataType: "json",//数据类型可以为 text xml json  scrip...]]></description><category></category></item></channel></rss>