<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_20076823的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_20076823</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_20076823]]></copyright><item><title><![CDATA[java  word和pdf文件生成html]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/106548037</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/106548037</guid><author>qq_20076823</author><pubDate>Thu, 04 Jun 2020 15:44:34 +0800</pubDate><description><![CDATA[依赖包如下：



&lt;dependency&gt;
    &lt;groupId&gt;fr.opensagres.xdocreport&lt;/groupId&gt;
    &lt;artifactId&gt;fr.opensagres.xdocreport.document&lt;/artifactId&gt;
    &lt;version&gt;1.0.5&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
    &lt;gr.]]></description><category></category></item><item><title><![CDATA[mybits 二级缓存最大的坑]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/102583895</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/102583895</guid><author>qq_20076823</author><pubDate>Wed, 16 Oct 2019 13:36:29 +0800</pubDate><description><![CDATA[mybatis二级缓存的使用场景及脏数据的产生

MyBatis 的二级缓存是和命名空间绑定的，所以通常情况下每一个 Mapper 映射文件都拥有 自己的二级缓存，不同 Mapper 的二级缓存互不影响。在常见的数据库操作中，多表联合查询非常常见，由于关系型数据库的设计， 使得很多时候需要关联多个表才能获得想要的数据。在关联多表查询时肯定会将该查询放到某个命名空间下的映射文件中，这样一个多表的查...]]></description><category></category></item><item><title><![CDATA[json反序列化转对象参数设置]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/102479639</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/102479639</guid><author>qq_20076823</author><pubDate>Thu, 10 Oct 2019 13:07:30 +0800</pubDate><description><![CDATA[&lt;!-- jackson --&gt; 
&lt;dependency&gt; 
  &lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt; 
  &lt;artifactId&gt;jackson-core&lt;/artifactId&gt; 
  &lt;version&gt;2.2.3&lt;/versi...]]></description><category></category></item><item><title><![CDATA[feign调用请求头转发的坑]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/100103358</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/100103358</guid><author>qq_20076823</author><pubDate>Tue, 27 Aug 2019 16:59:21 +0800</pubDate><description><![CDATA[使用RequestInterceptor拦截器实现request转发，这样可以完美解决请求头传递以及参数过滤问题
但是有个坑的问题 在和文件上传一起使用会有冲突问题
@Override
public void apply(RequestTemplate requestTemplate) {
    ServletRequestAttributes attributes = (ServletRequ...]]></description><category></category></item><item><title><![CDATA[Redis分布式锁的正确实现方式（Java版）]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/100101915</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/100101915</guid><author>qq_20076823</author><pubDate>Tue, 27 Aug 2019 16:09:31 +0800</pubDate><description><![CDATA[前言
分布式锁一般有三种实现方式：1. 数据库乐观锁；2. 基于Redis的分布式锁；3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式，基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客，然而他们的实现却有着各种各样的问题，为了避免误人子弟，本篇博客将详细介绍如何正确地实现Redis分布式锁。
可靠性
首先，为了确保分布式锁可用，我们至少要确保锁的实现同...]]></description><category></category></item><item><title><![CDATA[js图片压缩后上传]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/90175047</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/90175047</guid><author>qq_20076823</author><pubDate>Mon, 13 May 2019 16:04:06 +0800</pubDate><description><![CDATA[&lt;input id="uploadFile" class="uploader-input" type="file" name="uploadFile" accept="image/*"  multiple="multiple" onchange="uploadFile();"&gt;

function uploadFile(){
 var lengli = $("#upload...]]></description><category></category></item><item><title><![CDATA[数据库事务中的隔离级别和锁+spring Transactional注解]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/83858307</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/83858307</guid><author>qq_20076823</author><pubDate>Thu, 08 Nov 2018 11:22:13 +0800</pubDate><description><![CDATA[数据库事务中的隔离级别和锁

数据库事务在后端开发中占非常重要的地位，如何确保数据读取的正确性、安全性也是我们需要研究的问题。
ACID
首先总结一下数据库事务正确执行的四个要素（ACID）：

原子性（Atomicity）：即事务是不可分割的最小工作单元，事务内的操作要么全做，要么全不做，不能只做一部分；
一致性（Consistency）：在事务执行前数据库的数据处于正确的状态，而事务执行完成后...]]></description><category></category></item><item><title><![CDATA[Spring 中注解大全和应用]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/83409885</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/83409885</guid><author>qq_20076823</author><pubDate>Fri, 26 Oct 2018 09:21:37 +0800</pubDate><description><![CDATA[Spring 中注解大全和应用



	@Controller
	
	
	@RestController：
	
	
	@Service
	
	
	@Autowired
	
	
	@RequestMapping
	
	
	@RequestParam
	
	
	@ModelAttribute
	
	
	@Cacheable
	
	
	@CacheEvict
	
	
	@Resource
	
	
	@P...]]></description><category></category></item><item><title><![CDATA[缓存穿透、缓存并发、缓存失效之思路变迁]]></title><link>https://blog.youkuaiyun.com/qq_20076823/article/details/83409819</link><guid>https://blog.youkuaiyun.com/qq_20076823/article/details/83409819</guid><author>qq_20076823</author><pubDate>Fri, 26 Oct 2018 09:19:26 +0800</pubDate><description><![CDATA[缓存穿透、缓存并发、缓存失效之思路变迁

我们在用缓存的时候，不管是Redis或者Memcached，基本上会通用遇到以下三个问题：


	缓存穿透
	
	
	缓存并发
	
	
	缓存失效
	

一、缓存穿透








 
注：
上面三个图会有什么问题呢？


我们在项目中使用缓存通常都是先检查缓存中是否存在，如果存在直接返回缓存内容，如果不存在就直接查询数据库然后再缓存查询结果返回。这个时...]]></description><category></category></item></channel></rss>