<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lwang_IT的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lwang_IT</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lwang_IT]]></copyright><item><title><![CDATA[Docker环境部署 若依前后端分离版]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/124616213</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/124616213</guid><author>lwang_IT</author><pubDate>Wed, 26 Oct 2022 14:53:27 +0800</pubDate><description><![CDATA[f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。-p 6379:6379 端口映射：前表示主机部分，：后表示容器部分。docker logs [ID或者名字] 可以查看容器内部的标准输出。在上图中可以看到我们已经安装了最新版本的 redis 镜像。构建后，通过docker images，可以查看到构建的镜像。-v 挂载文件或目录 ：前表示主机部分，：后表示容器部分。进入后执行ls,就可以看到，容器内部的目录结构了。运行后通过通过docker ps查看运行中的容器。..]]></description><category></category></item><item><title><![CDATA[记一次centos7系统重装过程]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/127528121</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/127528121</guid><author>lwang_IT</author><pubDate>Wed, 26 Oct 2022 10:54:50 +0800</pubDate><description><![CDATA[公司闲置了一台服务器开不了机，发现没有硬盘，于是装了硬盘，准备重装系统，作为测试服务器使用，下面记录下系统的重装过程。]]></description><category></category></item><item><title><![CDATA[elementUI -前端一对多，多个固定类型情况下的新增实现，数组类型表单校验]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/124950842</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/124950842</guid><author>lwang_IT</author><pubDate>Tue, 24 May 2022 19:56:06 +0800</pubDate><description><![CDATA[最后效果图



问题描述：

一个分类下有多个规则：


{
	"id": 1,    //分组id
	"groupName": "分组一",    //分组名称
	"rules": [{
		"type": 1,    //规则类型
		"name": "规则一",    //规则名称
		"groupId": 1    //关联得分组id
	}, {
		"type": 2,
		"name": "规则二",
		"groupId": 1
	}]
}

规则得类型是固定的

rules的规则有3种ty]]></description><category></category></item><item><title><![CDATA[如何做到接口的幂等性]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/123129859</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/123129859</guid><author>lwang_IT</author><pubDate>Fri, 25 Feb 2022 11:47:52 +0800</pubDate><description><![CDATA[一、背景

我们实际系统中有很多操作，是不管做多少次，都应该产生一样的效果或返回一样的结果。例如：

1. 前端重复提交选中的数据，应该后台只产生对应这个数据的一个反应结果。

2. 我们发起一笔付款请求，应该只扣用户账户一次钱，当遇到网络重发或系统bug重发，也应该只扣一次钱；

3. 发送消息，也应该只发一次，同样的短信发给用户，用户会哭的；

4. 创建业务订单，一次业务请求只能创建一个，创建多个就会出大问题。

等等很多重要的情况，这些逻辑都需要幂等的特性来支持。

二、幂等性概念

幂等（idem]]></description><category></category></item><item><title><![CDATA[Java中CAS详解]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/121638089</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/121638089</guid><author>lwang_IT</author><pubDate>Tue, 30 Nov 2021 17:27:24 +0800</pubDate><description><![CDATA[目录

什么是CAS

从一个案例引出CAS问题

Java中的Atomic 原子操作包

1. 基本原子类

2. 数组原子类

3. 引用原子类

4. 字段更新原子类

类 AtomicInteger

常用的方法：

AtomicInteger 案例：

AtomicInteger 源码解析：

Unsafe类

Unsafe 提供的 CAS 方法

调用 Unsafe 提供的偏移量相关

什么是CAS

CAS,compare and swap的缩写，中文翻译成比较并交换。

CAS 操作包含三个]]></description><category></category></item><item><title><![CDATA[ThreadLocal 原理与实战]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/121592131</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/121592131</guid><author>lwang_IT</author><pubDate>Sun, 28 Nov 2021 18:03:33 +0800</pubDate><description><![CDATA[ThreadLocal 的基本使用

ThreadLocal 是位于 JDK 的 java.lang 核心包中。

如果程序创建了一个 ThreadLocal 实例，那么在访问这个变量的值时，每个线程都会拥有一个独立的、自己的本地值。“线程本地变量”可以看成专属于线程的变量，不受其他线程干扰，保存着线程的专属数据。

当线程结束后，每个线程所拥有的那一个本地值也会被释放。

在多线程并发操作“线程本地变量”时候，线程各自操作的是自己的本地值，从而规避了线程安全问题。

ThreadLocal 的成员方法 
]]></description><category></category></item><item><title><![CDATA[Axure导入元件库和使用]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/121163361</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/121163361</guid><author>lwang_IT</author><pubDate>Fri, 05 Nov 2021 15:44:52 +0800</pubDate><description><![CDATA[下载元件库

vant 元件库下载:Vant - Mobile UI Components built on Vue



element UI 元件库下载:https://element.eleme.cn/#/zh-CN/resource



以vant示例，下载完成后解压



我们看到有.rp和.rplib格式的文件

rp文件可以理解为一个别人设计好的原型作品

rplib是原件库文件

导入元件库



点击+号导入，Vant元件库.rplib 文件

导入成功后就可以查看并使用了

使....]]></description><category></category></item><item><title><![CDATA[查看docker 容器的ip地址]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/119670363</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/119670363</guid><author>lwang_IT</author><pubDate>Fri, 13 Aug 2021 11:04:49 +0800</pubDate><description><![CDATA[1.命令用于列出所有容器


2.docker inspect : 获取容器/镜像的元数据。运行 docker inspect nginx-test172.17.0.2 即为容器IP地址也可以使用下面的命令直接输出]]></description><category></category></item><item><title><![CDATA[uniApp开发微信公众号授权并传多个参数的解决方案]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/114327671</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/114327671</guid><author>lwang_IT</author><pubDate>Thu, 04 Mar 2021 09:30:01 +0800</pubDate><description><![CDATA[好久没写博客了哈哈，今天分享一个我遇到的问题和解决方案，直接贴代码：

ps:写这个博客特意用外网映射链接本地调试的代码，支持的话下面评论666

auth.js 授权相关逻辑


const port = {
	url: 'http://localhost:8086/triplh-api/',
}
export default {
	getUrlPrams(key) {
		var reg = new RegExp("(^|&amp;)" + key + "=([^&amp;]*)(&amp;|$)", ]]></description><category></category></item><item><title><![CDATA[通过CSS实现左右内凹圆形，彻底搞懂实现步骤]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/102564793</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/102564793</guid><author>lwang_IT</author><pubDate>Wed, 25 Nov 2020 17:16:10 +0800</pubDate><description><![CDATA[推荐radial-gradient属性讲解:https://www.zhangxinxu.com/wordpress/2017/11/css3-radial-gradient-syntax-example/

方式一：








&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta name="viewport" cont...]]></description><category></category></item><item><title><![CDATA[itext 动态的填充pdf]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/80775083</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/80775083</guid><author>lwang_IT</author><pubDate>Wed, 25 Nov 2020 17:15:34 +0800</pubDate><description><![CDATA[iText是著名的开放源码的站点sourceforge一个项目，是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档，而且可以将XML、Html文件转化为PDF文件。

 下面简单的整理几个操作pdf相关实例。

1.PDF模版填充

 首先需要有一个pdf文件作为模版，可以用如adobe acrobat等工具，添加几个文本域在pdf中，下面就是模...]]></description><category></category></item><item><title><![CDATA[uniapp,vue 修改v-html中的样式]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/103757350</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/103757350</guid><author>lwang_IT</author><pubDate>Wed, 25 Nov 2020 17:15:05 +0800</pubDate><description><![CDATA[最近使用Quill富文本编辑器，发现富文本中的图片太宽导致，在移动端超出屏幕

&lt;view v-html="detail" class="detail-box"&gt;&lt;/view&gt;

解决办法：

通过&gt;&gt;&gt;穿透修改

&lt;style scoped&gt;
	.detail-box  &gt;&gt;&gt;  img{
		width: 100%;
...]]></description><category></category></item><item><title><![CDATA[html截图 viedo标签截图 上传图片到服务器 java代码保存图片（完整）]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/88941885</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/88941885</guid><author>lwang_IT</author><pubDate>Mon, 01 Apr 2019 12:52:13 +0800</pubDate><description><![CDATA[对Html标签截图代码(直接引入html2canvas.js文件)


&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta charset="utf-8"&gt;
		&lt;title&gt;&lt;/title&gt;
		&lt;script src="https://cdn.bootcss.com/html2canvas/...]]></description><category></category></item><item><title><![CDATA[安装mysql服务时提示“找不到MSVCP140.dll VCRUNTIME140.dll”]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/88790954</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/88790954</guid><author>lwang_IT</author><pubDate>Mon, 25 Mar 2019 12:55:00 +0800</pubDate><description><![CDATA[重装window系统后，安装mysql服务时提示“找不到MSVCP140.dll VCRUNTIME140.dll”，原因是没有安装VC++2015版运行库导致的（Microsoft Visual C++ 2015 Redistributable），下载地址https://www.microsoft.com/en-us/download/details.aspx?id=53587。点击downlo...]]></description><category></category></item><item><title><![CDATA[IntelJ idea下lombok 不生效的问题]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/83016597</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/83016597</guid><author>lwang_IT</author><pubDate>Thu, 11 Oct 2018 18:26:20 +0800</pubDate><description><![CDATA[首先在ide中安装:

首先确保安装了插件：

使用快捷键ctrl+alt+s（或者file-&amp;gt;settings）调起设置窗口，在窗口左边选择plugins--&amp;gt;Browse repositories...



其次pom.xml 添加依赖


 &amp;lt;dependency&amp;gt;
           &amp;lt;groupId&amp;gt;org.projectlombok&amp;lt;/gr...]]></description><category></category></item><item><title><![CDATA[echarts中自定义tooltip的换行问题]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/82685116</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/82685116</guid><author>lwang_IT</author><pubDate>Thu, 13 Sep 2018 11:20:20 +0800</pubDate><description><![CDATA[问题描述：

鼠标移入,雷达图的时候，内容挤在一起，我要的效果是换行:



此时的代码，此时代码里面的\n换行也是没有效果的：


tooltip: {
    trigger: 'item',
    show:true,
   	formatter:function(params){
		var s='';
		s+=params.name+'\n';
		var values=params...]]></description><category></category></item><item><title><![CDATA[最牛逼：java动态的填充excel和java操作Excel复选框和单选框]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/80755235</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/80755235</guid><author>lwang_IT</author><pubDate>Sat, 14 Jul 2018 16:34:01 +0800</pubDate><description><![CDATA[转载地址：点击打开链接

做完pdf填充 和world填充后 最近公司又要做excel动态填充，下面附上解决办法

使用template模板进行填充，将Excel另存为 XML表格，这里不在过多叙述，详情请看我的另一篇博客：点击打开链接

在这里主要解决的选框的问题：

第一步：找到需要动态勾选的选框





然后将excel文件另存为XML表格；

打开xml,搜索到：



找到这个以...]]></description><category></category></item><item><title><![CDATA[java使用freemarker动态生成world文档及常见错误解决]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/80359482</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/80359482</guid><author>lwang_IT</author><pubDate>Fri, 18 May 2018 10:03:49 +0800</pubDate><description><![CDATA[第一步：手动创建一个doc模板；第二步：将world中需要动态生成的部分用${}替换第三步：将world另存为xml文件第四步：将xml文件复制在eclipse（或者其他代码编辑器）中，然后鼠标右击文件-&amp;gt;properties,设置编码格式为utf-8（防止转换后的world乱码），最后修改文件的类型为ftl（即文件的后缀名为.ftl）下面贴出代码：package world;
import...]]></description><category></category></item><item><title><![CDATA[a.*b与a.*?b的区别]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/80228244</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/80228244</guid><author>lwang_IT</author><pubDate>Mon, 07 May 2018 17:01:55 +0800</pubDate><description><![CDATA[a.*b，它将会匹配最长的以a开始，以b结束的字符串。如果用它来搜索aabab的话，它会匹配整个字符串aabab。这被称为贪婪匹配。
a.*?b匹配最短的，以a开始，以b结束的字符串。如果把它应用于aabab的话，它会匹配aab（第一到第三个字符）和ab（第四到第五个字符）]]></description><category></category></item><item><title><![CDATA[手写一个线程池]]></title><link>https://blog.youkuaiyun.com/lwang_IT/article/details/78744560</link><guid>https://blog.youkuaiyun.com/lwang_IT/article/details/78744560</guid><author>lwang_IT</author><pubDate>Thu, 07 Dec 2017 22:44:39 +0800</pubDate><description><![CDATA[接口


import java.util.List;
public interface ThreadPool {
		//执行一个Runnable类型的任务
		void execute(Runnable task);
        //方法入参为一个Runnable数组，表示执行一个或者多个Runnable类型的任务
		void execute(Runnable[] tasks);
        //方法入参为一个Runnable集合，表示执行一个或者多个Runnable类型的任务
		void ]]></description><category></category></item></channel></rss>