<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_44073321的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_44073321</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_44073321]]></copyright><item><title><![CDATA[JAVA8 移除两个相同的List对象]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/106019381</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/106019381</guid><author>weixin_44073321</author><pubDate>Sat, 09 May 2020 15:04:22 +0800</pubDate><description><![CDATA[JAVA8 移除两个相同的List对象
List&lt;Data&gt; data1 = new ArrayList&lt;&gt;();
data1.add(new Data(7, 15));
data1.add(new Data(2, 17));
data1.add(new Data(2, 17));

List&lt;Data&gt; data2 = new ArrayList&lt;&gt;();
data2.add(new Data(1, 11));
data2.add(new Data(10, ]]></description><category></category></item><item><title><![CDATA[SpringCloud Config 分布式配置中心]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/105274243</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/105274243</guid><author>weixin_44073321</author><pubDate>Fri, 03 Apr 2020 16:13:47 +0800</pubDate><description><![CDATA[Config是什么：

SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持，配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。
怎么玩
SpringCloud Config分为服务端和客户端两部分。
服务端也称为分布式配置中心，它是一个独立的微服务应用，用来连接配置服务器并为客户端提供获取配置信息，加密/解密信息等访问接口
客户端则是通过指定的配置...]]></description><category></category></item><item><title><![CDATA[SpringCloud Zuul 路由网关]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/105164586</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/105164586</guid><author>weixin_44073321</author><pubDate>Sat, 28 Mar 2020 17:41:14 +0800</pubDate><description><![CDATA[是什么：
Zuul包含了对请求的路由和过滤两个最主要的功能：
其中路由功能负责将外部请求转发到具体的微服务实例上，是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预，是实现请求校验、服务聚合等功能的基础.
Zuul和Eureka进行整合，将Zuul自身注册为Eureka服务治理下的应用，同时从Eureka中获得其他微服务的消息，也即以后的访问微服务都是通过Zuul跳转后获得。
...]]></description><category></category></item><item><title><![CDATA[SpringCloud Hystrix 断路器]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/105160903</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/105160903</guid><author>weixin_44073321</author><pubDate>Sat, 28 Mar 2020 15:52:57 +0800</pubDate><description><![CDATA[是什么：
Hystrix是一个用于处理分布式系统的延迟和容错的开源库，在分布式系统里，许多依赖不可避免的会调用失败，比如超时、异常等，Hystrix能够保证在一个依赖出问题的情况下，不会导致整体服务失败，避免级联故障，以提高分布式系统的弹性。
“断路器”本身是一种开关装置，当某个服务单元发生故障之后，通过断路器的故障监控（类似熔断保险丝），向调用方返回一个符合预期的、可处理的备选响应（FallBa...]]></description><category></category></item><item><title><![CDATA[SpringCloud Feign 负载均衡]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/104970599</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/104970599</guid><author>weixin_44073321</author><pubDate>Thu, 19 Mar 2020 16:57:16 +0800</pubDate><description><![CDATA[上篇Ribbon博客
Feign的简介：
Feign是一个声明式的伪Http客户端，它使得写Http客户端变得更简单。使用Feign，只需要创建一个接口并注解。它具有可插拔的注解特 性，可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon，并和Eureka结合，默认实现了负载均衡的效果。
简而言之：
Feign 采用的是基于接口的注解
F...]]></description><category></category></item><item><title><![CDATA[SpringCloud Ribbon 负载均衡]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/104918156</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/104918156</guid><author>weixin_44073321</author><pubDate>Tue, 17 Mar 2020 14:27:27 +0800</pubDate><description><![CDATA[本文与上一篇博客有所关联
是什么：
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端       负载均衡的工具。
简单的说，Ribbon是Netflix发布的开源项目，主要功能是提供客户端的软件负载均衡算法，将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时，重试等。简单的说，就是在配置文件中列出Load Bal...]]></description><category></category></item><item><title><![CDATA[SpringCloud Eureka 服务治理]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/104814556</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/104814556</guid><author>weixin_44073321</author><pubDate>Thu, 12 Mar 2020 15:44:38 +0800</pubDate><description><![CDATA[Eureka 基本架构
Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper)。
Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器，它是服务注册中心。
而系统中的其他微服务，使用 Eureka 的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过...]]></description><category></category></item><item><title><![CDATA[实现Spring JDK代理和CGLIB代理]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/103937254</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/103937254</guid><author>weixin_44073321</author><pubDate>Sat, 11 Jan 2020 16:20:51 +0800</pubDate><description><![CDATA[JDK代理：
JDK动态代理其实也是基本接口实现的。因为通过接口指向实现类实例的多态方式，可以有效地将具体实现与调用解耦，便于后期的修改和维护。

创建"Car"接口：

package com.example.demo;

/**
 * 定义Car接口
 */
public interface Car {
    void whatCar();
}

2.创建"Mazda"类，实现接口"Car"...]]></description><category></category></item><item><title><![CDATA[Springboot 使用HibernateValidator校验必填参数]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/103352279</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/103352279</guid><author>weixin_44073321</author><pubDate>Mon, 02 Dec 2019 17:24:28 +0800</pubDate><description><![CDATA[前言：
在开发中经常需要写一些字段校验的代码，比如字段非空，字段长度限制，邮箱格式验证等等，写这些与业务逻辑关系不大的代码个人感觉有两个麻烦：

验证代码繁琐，重复劳动
方法内代码显得冗长
每次要看哪些参数验证是否完整，需要去翻阅验证逻辑代码

hibernate validator（官方文档）提供了一套比较完善、便捷的验证实现方式。
spring-boot-starter-web包里面有hibe...]]></description><category></category></item><item><title><![CDATA[Springboot @Async异步调用]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/103214306</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/103214306</guid><author>weixin_44073321</author><pubDate>Sat, 23 Nov 2019 15:12:01 +0800</pubDate><description><![CDATA[在Java应用中，绝大多数情况下都是通过同步的方式来实现交互处理的；但是在处理与第三方系统交互的时候，容易造成响应迟缓的情况，之前大部分都是使用多线程来完成此类任务，其实，在spring 3.x之后，就已经内置了@Async来完美解决这个问题，本文将介绍在springboot中如何使用@Async。
前言：
Java中交互方式分为同步和异步两种：

同步交互：指发送一个请求,需要等待返回,然后才能...]]></description><category></category></item><item><title><![CDATA[Springboot 集成Quartz实现定时任务]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/103186220</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/103186220</guid><author>weixin_44073321</author><pubDate>Thu, 21 Nov 2019 17:06:10 +0800</pubDate><description><![CDATA[一、JAVA常见的几种定时任务比较

Timer：jdk自带的java.util.Timer类，这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让程序按照某一个频度执行，但不能在指定时间运行，一般很少使用，主要用于非Spring项目简单的任务调度。
Spring
Task：Spring3.0以后自带的Task，可以将它看成一个轻量级的Quartz，使用起来比Quar...]]></description><category></category></item><item><title><![CDATA[JAVA8 LocalDateTime时间 使用案例]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/103124703</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/103124703</guid><author>weixin_44073321</author><pubDate>Mon, 18 Nov 2019 17:08:59 +0800</pubDate><description><![CDATA[简介：
新时间日期API常用、重要对象介绍：

ZoneId: 时区ID，用来确定Instant和LocalDateTime互相转换的规则
Instant: 用来表示时间线上的一个点（瞬时）
LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的
LocalTime: 表示没有时区的时间, LocalTime是不可变并且线程安全的
LocalDateTime: 表示没...]]></description><category></category></item><item><title><![CDATA[JAVA8 LocalDate时间 使用案例]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/103087984</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/103087984</guid><author>weixin_44073321</author><pubDate>Fri, 15 Nov 2019 17:06:46 +0800</pubDate><description><![CDATA[简介：
LocalDate——不包含具体时间的日期，比如2014-01-14。它可以用来存储生日，周年纪念日，入职日期等。
java8中有个叫LocalDate的类，能用来表示今天的日期。这个类与java.util.Date略有不同，因为它只包含日期，没有时间。

上代码：
// 取当前日期：
LocalDate now = LocalDate.now();
System.out.println(...]]></description><category></category></item><item><title><![CDATA[JAVA8 Instant时间戳 使用案例]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/103012600</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/103012600</guid><author>weixin_44073321</author><pubDate>Wed, 13 Nov 2019 17:33:49 +0800</pubDate><description><![CDATA[一、简介
用于“时间戳”的运算。它是以Unix元年(传统 的设定为UTC时区1970年1月1日午夜时分)开始 所经历的描述进行运算
二、文档介绍与实例
1.now

/*
 * NOW
 */
Instant now = Instant.now();
System.out.println("now:" + now);
ZonedDateTime zonedDateTime = now.atZone...]]></description><category></category></item><item><title><![CDATA[SpringBoot 整合 RestTemplate 实现远程调用接口]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/102804615</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/102804615</guid><author>weixin_44073321</author><pubDate>Tue, 29 Oct 2019 17:42:49 +0800</pubDate><description><![CDATA[SpringBoot整合RestTemplate实现远程调用接口
简介：
spring框架提供的RestTemplate类可用于在应用中调用rest服务，它简化了与http服务的通信方式，统一了RESTful的标准，封装了http链接，我们只需要传入url及返回值类型即可。相较于之前常用的HttpClient，RestTemplate是一种更优雅的调用RESTful服务的方式。

RestTemp...]]></description><category></category></item><item><title><![CDATA[SpringBoot 整合 RibbitMq 实现发送消息]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/102625280</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/102625280</guid><author>weixin_44073321</author><pubDate>Fri, 18 Oct 2019 15:31:10 +0800</pubDate><description><![CDATA[一：首先得安装ribbitmq的服务，参考博客。
二：了解RibbitMq的基本原理，以及使用方法。



关键名词：
ConnectionFactory（连接管理器）：应用程序与Rabbit之间建立连接的管理器，程序代码中使用；
Channel（信道）：消息推送使用的通道；
Exchange（交换器）：用于接受、分配消息；
Queue（队列）：用于存储生产者的消息；
RoutingKey（路由键...]]></description><category></category></item><item><title><![CDATA[Mysql 关键子IN 不按传入的顺序返回数据]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/96440658</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/96440658</guid><author>weixin_44073321</author><pubDate>Thu, 18 Jul 2019 18:00:54 +0800</pubDate><description><![CDATA[实例：
SELECT plate_no,user_car_id FROM customer_user_car WHERE user_car_id IN (57603,57612,57607,57605)

这样的情况取出来后，其实，id还是按由小到大排序的，但如果我们真要按IN里面的顺序排序怎么办？SQL能不能完成？是否需要取回来后再foreach一下？其实mysql就有这个方法 ：
SELECT...]]></description><category></category></item><item><title><![CDATA[MySql GROUP_CONCAT每次执行语句时数据顺序变化]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/93194791</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/93194791</guid><author>weixin_44073321</author><pubDate>Fri, 21 Jun 2019 15:05:28 +0800</pubDate><description><![CDATA[sql语句：
SELECT 
  u.user_id AS userId,
  GROUP_CONCAT(uc.user_car_id) AS userCarId,
  u.mobile,
  ui.real_name AS realName,
  GROUP_CONCAT(uc.plate_no) AS plateNo 
FROM
  customer_user AS u 
  JOIN cus...]]></description><category></category></item><item><title><![CDATA[mybatis插入表数据不返回主键ID]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/91869589</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/91869589</guid><author>weixin_44073321</author><pubDate>Thu, 13 Jun 2019 16:00:45 +0800</pubDate><description><![CDATA[返不返回主键id取决于这两个属性：
useGeneratedKeys：xml映射器中配置的useGeneratedKeys参数只会对xml映射器产生影响，且在settings元素中设置的全局useGeneratedKeys参数值对于xml映射器不产生任何作用。

keyProperty：对应的主键id


...]]></description><category></category></item><item><title><![CDATA[java8对List对象排序]]></title><link>https://blog.youkuaiyun.com/weixin_44073321/article/details/90763324</link><guid>https://blog.youkuaiyun.com/weixin_44073321/article/details/90763324</guid><author>weixin_44073321</author><pubDate>Tue, 04 Jun 2019 09:42:38 +0800</pubDate><description><![CDATA[工作中遇到的问题：获得List对象，需要根据对象中的CreateTime来排序

分两个版本
java8:
List&lt;CountCardDetailVo&gt; all = new ArrayList&lt;&gt;();
//根据创建时间降序排序
all.sort(Comparator.comparing(CountCardDetailVo::getCreateTime).reverse...]]></description><category></category></item></channel></rss>