<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Chery Qi的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/cheryjava</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; cheryjava]]></copyright><item><title><![CDATA[HTML转义特殊字符字符]]></title><link>https://blog.csdn.net/cheryjava/article/details/126395647</link><guid>https://blog.csdn.net/cheryjava/article/details/126395647</guid><author>cheryjava</author><pubDate>Wed, 17 Aug 2022 22:29:36 +0800</pubDate><description><![CDATA[HTML转义特殊字符字符
]]></description><category></category></item><item><title><![CDATA[MYSQL 中把某个表里的记录复制到另一个数据库的表中，重复的不插入]]></title><link>https://blog.csdn.net/cheryjava/article/details/125877854</link><guid>https://blog.csdn.net/cheryjava/article/details/125877854</guid><author>cheryjava</author><pubDate>Tue, 19 Jul 2022 18:07:20 +0800</pubDate><description><![CDATA[mysql]]></description><category></category></item><item><title><![CDATA[IDEA插件：Restful 接口文档生成工具、助手，支持单个或批量导出接口信息+文档信息到Postman或Markdown]]></title><link>https://blog.csdn.net/cheryjava/article/details/125320748</link><guid>https://blog.csdn.net/cheryjava/article/details/125320748</guid><author>cheryjava</author><pubDate>Thu, 16 Jun 2022 17:58:35 +0800</pubDate><description><![CDATA[https://blog.csdn.net/guddqs/article/details/120596563]]></description><category></category></item><item><title><![CDATA[properties、yml文件如何读取pom.xml中的version和artifactId]]></title><link>https://blog.csdn.net/cheryjava/article/details/122978178</link><guid>https://blog.csdn.net/cheryjava/article/details/122978178</guid><author>cheryjava</author><pubDate>Thu, 17 Feb 2022 10:41:32 +0800</pubDate><description><![CDATA[1.pom中添加如下配置
  &lt;resources&gt;
            &lt;resource&gt;
                &lt;directory&gt;src/main/resources&lt;/directory&gt;
                &lt;filtering&gt;true&lt;/filtering&gt;
                &lt;includes&gt;
&lt;!--                    // 分环境打包]]></description><category></category></item><item><title><![CDATA[多模块Maven项目统一修改版本号]]></title><link>https://blog.csdn.net/cheryjava/article/details/122977686</link><guid>https://blog.csdn.net/cheryjava/article/details/122977686</guid><author>cheryjava</author><pubDate>Thu, 17 Feb 2022 10:23:59 +0800</pubDate><description><![CDATA[编写多Module的Maven项目时，如果Module很多，并且存在复杂层级，那么修改项目版本号将会是一个大工程，我们需要去每个Module中修改当前Module的版本号，以及它依赖的parent的版本号
Maven中存在专门的一个用于修改Module版本号的插件，Versions Maven Plugin，网址为：http://www.mojohaus.org/versions-maven-plugin/。
在顶级 Module 中添加插件
为了使用版本号修改的功能，需要现在顶级 Module 中添加插件]]></description><category></category></item><item><title><![CDATA[springboot中如何优雅的关闭服务器]]></title><link>https://blog.csdn.net/cheryjava/article/details/122213856</link><guid>https://blog.csdn.net/cheryjava/article/details/122213856</guid><author>cheryjava</author><pubDate>Wed, 29 Dec 2021 13:40:55 +0800</pubDate><description><![CDATA[在生产环境中遇到一些奇葩的问题，一部署服务，就有一些异常的数据，经过分析是部署shell中直接用kill -9进行关闭服务，一些请求还在处理中就被kill了，导致数据存脏数据。开始提出了一些方案，比如后台增加开始部署按钮，点击后，关键的请求（如交易）被拒绝，没有完成的请求继续，等待一段时间后部署。后来看到一篇文章中提到了如何优雅关闭服务器，便详细研究研究，总结了一下优雅关闭服务器大概包括一下几种：
1、设置拦截器，需要部署时点击后台按钮激活拦截关键的请求。过一段时间再部署。缺点是部署麻烦，需要人工去点击。这]]></description><category></category></item><item><title><![CDATA[mybatis遍历foreach中or拼接]]></title><link>https://blog.csdn.net/cheryjava/article/details/121742701</link><guid>https://blog.csdn.net/cheryjava/article/details/121742701</guid><author>cheryjava</author><pubDate>Mon, 06 Dec 2021 11:09:27 +0800</pubDate><description><![CDATA[select id, name from t_keys where 1 = 1
 
&lt;if test="keys != null"&gt;
 
 &lt;foreach collection="keys" item="key" open="AND (" close=")" separator="or" &gt;
 
  name = #{key}
 
 &lt;/foreach&gt;
 
&lt;/if&gt;


]]></description><category></category></item><item><title><![CDATA[2021-11-20T15:00:13.000+08:00 时间格式转换LocalDateTime格式]]></title><link>https://blog.csdn.net/cheryjava/article/details/121471539</link><guid>https://blog.csdn.net/cheryjava/article/details/121471539</guid><author>cheryjava</author><pubDate>Mon, 22 Nov 2021 15:12:49 +0800</pubDate><description><![CDATA[DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = df.parse(sendTime);
SimpleDateFormat df1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK);
Date date1 = df1.parse(date.toString());
DateFormat df2 = new SimpleDateFor]]></description><category></category></item><item><title><![CDATA[Java8 Stream流递归, 遍历树形结构]]></title><link>https://blog.csdn.net/cheryjava/article/details/121227154</link><guid>https://blog.csdn.net/cheryjava/article/details/121227154</guid><author>cheryjava</author><pubDate>Tue, 09 Nov 2021 14:24:15 +0800</pubDate><description><![CDATA[可能平常会遇到一些需求，比如构建菜单，构建树形结构，数据库一般就使用父id来表示，为了降低数据库的查询压力，我们可以使用Java8中的Stream流一次性把数据查出来，然后通过流式处理，我们一起来看看，代码实现为了实现简单，就模拟查看数据库所有数据到List里面。
实体类：Menu.java
/**
 * Menu
 * @author lcry
 */
@Data
@Builder
public class Menu {
    /**
     * id
     */
    public Integ]]></description><category></category></item><item><title><![CDATA[@Validated注解详解，分组校验，嵌套校验，@Valid和@Validated 区别，Spring Boot @Validated]]></title><link>https://blog.csdn.net/cheryjava/article/details/121158162</link><guid>https://blog.csdn.net/cheryjava/article/details/121158162</guid><author>cheryjava</author><pubDate>Fri, 05 Nov 2021 10:37:54 +0800</pubDate><description><![CDATA[技术栈：
spring boot 2.3.3.RELEASE
hibernate-validator
文末附项目源代码
目录
简述
项目依赖
全局异常处理类
基础参数校验
实体类
控制类
测试
嵌套参数验证
实体类
控制类
测试
分组参数验证
接口类
实体类
控制类
测试
@Valid和@Validated 区别
简述
@Validation是一套帮助我们继续对传输的参数进行数据校验的注解，通过配置Validation可以很轻松的完成对数据的约束。
@Validated作用在类、方法和参数上
    @Ta]]></description><category></category></item><item><title><![CDATA[git Failed to connect to 127.0.0.1 port xxxx: Connection refused]]></title><link>https://blog.csdn.net/cheryjava/article/details/121090094</link><guid>https://blog.csdn.net/cheryjava/article/details/121090094</guid><author>cheryjava</author><pubDate>Mon, 01 Nov 2021 22:10:51 +0800</pubDate><description><![CDATA[git拉取代码的时候出现了fatal: unable to access ‘https://gitee.com/xxxx/xxx.git/’: Failed to connect to 127.0.0.1 port 1181: Connection refused的问题
方式一
首先，查一下代理：
git config --global http.proxy
如果有就取消
git config --global --unset http.proxy
git config --global https.pro]]></description><category></category></item><item><title><![CDATA[LocalDateTime计算时间间隔秒数]]></title><link>https://blog.csdn.net/cheryjava/article/details/120696455</link><guid>https://blog.csdn.net/cheryjava/article/details/120696455</guid><author>cheryjava</author><pubDate>Mon, 11 Oct 2021 10:23:56 +0800</pubDate><description><![CDATA[LocalDateTime endTime = LocalDateTime.parse("2021-08-31 23:38:12", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime beginTime = LocalDateTime.now();

long seconds = Math.abs(endTime.until(beginTime, ChronoUnit.SECONDS));




]]></description><category></category></item><item><title><![CDATA[MongoDB Criteria模糊查询]]></title><link>https://blog.csdn.net/cheryjava/article/details/120655671</link><guid>https://blog.csdn.net/cheryjava/article/details/120655671</guid><author>cheryjava</author><pubDate>Fri, 08 Oct 2021 17:06:36 +0800</pubDate><description><![CDATA[String pattern = ".*?" + imageContains + ".*";
        Criteria criteria = new Criteria();
        criteria.andOperator(Criteria.where("inAndOutTimeString").gte(startTime), Criteria.where("inAndOutTimeString").lte(endTime),
                Criteria...]]></description><category></category></item><item><title><![CDATA[几款好用的矢量图库网站]]></title><link>https://blog.csdn.net/cheryjava/article/details/120549004</link><guid>https://blog.csdn.net/cheryjava/article/details/120549004</guid><author>cheryjava</author><pubDate>Wed, 29 Sep 2021 15:06:33 +0800</pubDate><description><![CDATA[iconfont （阿里巴巴图标库）
网址：http://www.iconfont.cn
icons8
网址：https://icons8.com
iconfinder
网址：https://www.iconfinder.com


]]></description><category></category></item><item><title><![CDATA[windows 中查看端口占用情况并杀死进程]]></title><link>https://blog.csdn.net/cheryjava/article/details/120195363</link><guid>https://blog.csdn.net/cheryjava/article/details/120195363</guid><author>cheryjava</author><pubDate>Thu, 09 Sep 2021 10:10:44 +0800</pubDate><description><![CDATA[netstat -ano |findstr “端口号”
tasklist |findstr “进程id号”
taskkill /f /t /im “进程id或者进程名称”

]]></description><category></category></item><item><title><![CDATA[上传jar包到Nexus]]></title><link>https://blog.csdn.net/cheryjava/article/details/119754564</link><guid>https://blog.csdn.net/cheryjava/article/details/119754564</guid><author>cheryjava</author><pubDate>Tue, 17 Aug 2021 13:28:51 +0800</pubDate><description><![CDATA[或者命令行(ip地址和路径根据实际修改)
mvn deploy:deploy-file -DgroupId=com.lanlinker.cloud.examples -DartifactId=lanlinker-hc-examples -Dversion=1.0.0 -Dpackaging=jar -Dfile=D:\examples.jar -Durl=http://192.168.1.139:8092/repository/lanlinker-3rd/ -DrepositoryId=lanlinke..]]></description><category></category></item><item><title><![CDATA[浅析VO、DTO、DO、PO的概念、区别和用处]]></title><link>https://blog.csdn.net/cheryjava/article/details/119418162</link><guid>https://blog.csdn.net/cheryjava/article/details/119418162</guid><author>cheryjava</author><pubDate>Thu, 05 Aug 2021 14:58:38 +0800</pubDate><description><![CDATA[概念：
VO（View Object）：视图对象，用于展示层，它的作用是把某个指定页面（或组件）的所有数据封装起来。
DTO（Data Transfer Object）：数据传输对象，这个概念来源于J2EE的设计模式，原来的目的是为了EJB的分布式应用提供粗粒度的数据实体，以减少分布式调用的次数，从而提高分布式调用的性能和降低网络负载，但在这里，我泛指用于展示层与服务层之间的数据传输对象。
DO（Domain Object）：领域对象，就是从现实世界中抽象出来的有形或无形的业务实体。
PO（Persiste]]></description><category></category></item><item><title><![CDATA[hutool工具Word07Writer导出word文档提供下载]]></title><link>https://blog.csdn.net/cheryjava/article/details/119386344</link><guid>https://blog.csdn.net/cheryjava/article/details/119386344</guid><author>cheryjava</author><pubDate>Wed, 04 Aug 2021 16:05:07 +0800</pubDate><description><![CDATA[&lt;!-- hutool --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;cn.hutool&lt;/groupId&gt;
            &lt;artifactId&gt;hutool-all&lt;/artifactId&gt;
            &lt;version&gt;5.3.7&lt;/version&gt;
        &lt;/dependency&gt;

 public static v]]></description><category></category></item><item><title><![CDATA[java8 Stream 大数据量List分批处理切割]]></title><link>https://blog.csdn.net/cheryjava/article/details/118760125</link><guid>https://blog.csdn.net/cheryjava/article/details/118760125</guid><author>cheryjava</author><pubDate>Thu, 15 Jul 2021 15:17:29 +0800</pubDate><description><![CDATA[java8 Stream 大数据量List分批处理
//按每3个一组分割
private static final Integer MAX_SEND = 3;

public static void main(String[] args) {
      List&lt;Integer&gt; list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
      int limit = countStep(list.size());
      //方法一：使用流遍历操作
   ]]></description><category></category></item><item><title><![CDATA[SpringBoot +Mybatis-plus 结合数据库动态执行定时任务]]></title><link>https://blog.csdn.net/cheryjava/article/details/117701267</link><guid>https://blog.csdn.net/cheryjava/article/details/117701267</guid><author>cheryjava</author><pubDate>Tue, 08 Jun 2021 14:36:53 +0800</pubDate><description><![CDATA[SpringBoot +mybatis-plus 结合数据库动态执行定时任务
1.添加依赖
    &lt;properties&gt;
        &lt;java.version&gt;1.8&lt;/java.version&gt;
        &lt;mybatis-generator.version&gt;1.3.7&lt;/mybatis-generator.version&gt;
        &lt;mysql-connector.version&gt;8.0.15&lt;/mys]]></description><category></category></item></channel></rss>