<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangli61289的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangli61289</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangli61289]]></copyright><item><title><![CDATA[slf4j使用]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/151786297</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/151786297</guid><author>wangli61289</author><pubDate>Wed, 17 Sep 2025 10:43:59 +0800</pubDate><description><![CDATA[slf4j绑定具体实现1、logback


demo code:


2、log4j2


demo code:


3、log4j


demo code:


4、commons-logging


demo code:


多个实现slf4j的jar引入的情况下，由于slf4j选择具体实现的方式带有一些随机性，可能会导致日志不能像预期一样输出！slf4j可以选择以下jar包 绑定实现，正常maven dependencies下，以下jar包不应该并存，以保证slf4j实现是唯一的。log4j-slf]]></description><category></category></item><item><title><![CDATA[java实现outlook calendar日历功能]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/122988730</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/122988730</guid><author>wangli61289</author><pubDate>Thu, 17 Feb 2022 18:10:57 +0800</pubDate><description><![CDATA[java通过exchange服务器向outlook发送会议邮件并同步到日历]]></description><category></category></item><item><title><![CDATA[Java之QPS控制]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/109676246</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/109676246</guid><author>wangli61289</author><pubDate>Fri, 13 Nov 2020 15:45:08 +0800</pubDate><description><![CDATA[什么是QPS
QPS：queries per second ：每秒的请求数

QPS控制的目的
防止恶意请求，增加服务端负载

以下代码可以保证在任意时间段（1s）内，请求数不超过100。



import java.util.Arrays;
import java.util.concurrent.TimeUnit;

/**
 *使用数组存储每个请求到来的时间，前10次请求顺利通过，并填满数组。
 * 后续请求到来时，判断当前时间是否比数组中最早的时间晚1s，未晚，则打回，
 * 晚则替换数组...]]></description><category></category></item><item><title><![CDATA[Java通过HTTP方式传输文件]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/103887813</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/103887813</guid><author>wangli61289</author><pubDate>Wed, 08 Jan 2020 11:24:02 +0800</pubDate><description><![CDATA[最近再做项目的过程中又遇到通过HTTP方式上传文件的需求，想起来之前有实现过这个功能，只是时间太长不记得了，担心下次再忘于是就有了下面这篇文章。

先贴段客户端这边的代码吧


import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
imp...]]></description><category></category></item><item><title><![CDATA[关于React+SpringMVC+axios前后端分离实现文件下载]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/98986967</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/98986967</guid><author>wangli61289</author><pubDate>Fri, 09 Aug 2019 20:42:14 +0800</pubDate><description><![CDATA[最近React项目中用到了导出功能，网上搜索一番后决定采用Blob方式（推荐）来实现，现分享下具体实现步骤。

我主要采用后端生成excel文件流返回给前端来实现的，具体代码如下：


    @RequestMapping(value = "/download")
    public void export(HttpServletRequest request,
            ...]]></description><category></category></item><item><title><![CDATA[axios在前后端分离项目中的应用]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/98982974</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/98982974</guid><author>wangli61289</author><pubDate>Fri, 09 Aug 2019 20:09:14 +0800</pubDate><description><![CDATA[现在项目大多数采用前后端分离的方式来实现，特别是随着React、Vue的流行使用越来越广泛。第一次接触React时选用了蚂蚁金服dva+antd来搭建前端开发框架，dva自带的fetch方法不能满足项目需求，所以自己采用axios封装了一个访问网络数据工具类。

等后续有时间会补上react + dva.js + axios +antd 搭建的前端开发框架的代码，现只贴出axios请求工具类req...]]></description><category></category></item><item><title><![CDATA[React组件状态]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/80431638</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/80431638</guid><author>wangli61289</author><pubDate>Thu, 24 May 2018 11:44:12 +0800</pubDate><description><![CDATA[注意：在React中，组件的名字必须用大写字母开头，而包含该组件定义的文件名也应该是大写字母。1、无状态组件创建无状态函数式组件形式是从React 0.14版本开始出现的。它是为了创建纯展示组件，这种组件只负责根据传入的props来展示，不涉及到要state状态的操作。具体的无状态函数式组件，其官方指出：在大部分React代码中，大多数组件被写成无状态的组件，通过简单组合可以构建成其他的组件等；这...]]></description><category></category></item><item><title><![CDATA[springMVC集成shiro与cas实现SSO单点登录]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/79224943</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/79224943</guid><author>wangli61289</author><pubDate>Thu, 01 Feb 2018 10:30:45 +0800</pubDate><description><![CDATA[一、前言
Apache Shiro与Spring Security一样是Java的一个安全框架。那为什么与Spring整合却用Shiro？其实我个人是认为Spring Security太过于笨重，要写太多的过滤器，Shiro的配置简单这就是我选择的理由，何况Spring官方自己都推荐使用Shiro。Shiro最主要的就是认证与授权，而CAS的重点在于单点登录，其实CAS与Shiro整合的话就是关]]></description><category></category></item><item><title><![CDATA[datatables自定义]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/78415300</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/78415300</guid><author>wangli61289</author><pubDate>Wed, 01 Nov 2017 16:50:59 +0800</pubDate><description><![CDATA[最近对datatables又做了一次深入的了解，这次主要datatables自定义样式及搜索框，废话不多说了，直接上代码。首先介绍下，代码是基于jquery、bootstrap，如果要直接使用代码，请先引入相关js、css。
第一部分：自定义搜索框

	
		
			
			
				
			
		
	

第二部分：初始化datatables的配置
$.dataTablesSettings]]></description><category></category></item><item><title><![CDATA[SpringMVC redirect重定向传参]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/78357263</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/78357263</guid><author>wangli61289</author><pubDate>Thu, 26 Oct 2017 18:33:43 +0800</pubDate><description><![CDATA[关于SpringMVC 重定向传参的问题一直无解，每次碰到有关需求就去网上找资料，通常情况就是问题解决了知识点就忘记了。然而网上资料太凌乱，每次都要一个个重新测试才能找到正确答案，所以这次痛下决心，记录一下这次问题，免得下次碰到又不会，嘻嘻。
SpringMVC redirect传参总共有3种情况，现在一一说明。
第一种：手动拼接url，当涉及到中文时会乱码，不推荐，其他情况自己斟酌使用。
]]></description><category></category></item><item><title><![CDATA[Java获取配置文件的属性值通用工具类2]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/72458801</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/72458801</guid><author>wangli61289</author><pubDate>Thu, 18 May 2017 11:00:45 +0800</pubDate><description><![CDATA[最近用Junit对SpringMVC做单元测试的时候，报Failed to load ApplicationContext错误。网上很多资料都说报这个错误是因为Spring的配置文件没有加载，可是实际上我已经全部加载，最后断点调试才发现是因为没有获取到配置文件中的属性值。这里就涉及到我上一篇获取配置文件中的属性值，有兴趣的同学可以回头看看。


首先，我们来看看，我之前是怎么获取到配置文件的]]></description><category></category></item><item><title><![CDATA[iOS UIViewController之间的切换]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/54963811</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/54963811</guid><author>wangli61289</author><pubDate>Fri, 10 Feb 2017 11:13:29 +0800</pubDate><description><![CDATA[我是一枚刚学习iOS的菜鸟，项目中经常会涉及到UIViewController之间的跳转，常用的就是PushViewController及PresentViewController，现在简单介绍下他们之间的区别。
PushViewController与PresentViewController的区别
PushViewController是导航的方式跳转，左右切换，与PopViewControl]]></description><category></category></item><item><title><![CDATA[shell脚本——比较当前时间与文件的创建时间间隔]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/53895192</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/53895192</guid><author>wangli61289</author><pubDate>Tue, 27 Dec 2016 14:25:56 +0800</pubDate><description><![CDATA[最近项目中有个需求，要求把某个文件夹下的创建时间超过3分钟的文件删除。本来想是用Java的定时任务来实现的，但是比较复杂。而且想了下，也完全没有这个必要，于是就写了一个shell脚本，用crontab来执行。
#!/bin/bash

dir=`ls /root/20160705/`
DIR_PATH="/root/20160705/"
for fi in $dir
do
    FILE_NA]]></description><category></category></item><item><title><![CDATA[iOS调用系统的拨号功能]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/53841740</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/53841740</guid><author>wangli61289</author><pubDate>Fri, 23 Dec 2016 17:03:19 +0800</pubDate><description><![CDATA[最近在做VOIP网络电话，其中有个需求就是网络质量不好的情况下需要调用系统的打电话功能，也就是运营商电话（这个有个专业术语PSTN）。我从网上找了两个方法，都能实现这个功能，测试通过的。两个方法稍微有点点不通。
方法一：直接拨打，好比是在通话记录中直接拨打选中的号码
-(void)system_makeCall:(NSString *) callNumber{
    //获取目标号码字符串,]]></description><category></category></item><item><title><![CDATA[Java解析POST提交的json数据工具类]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/53695570</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/53695570</guid><author>wangli61289</author><pubDate>Fri, 16 Dec 2016 17:17:30 +0800</pubDate><description><![CDATA[工具类用于解析通过网络传输json数据的参数
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import net.sf.json.JSONOb]]></description><category></category></item><item><title><![CDATA[Java获取配置文件中的属性值通用类]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/53691910</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/53691910</guid><author>wangli61289</author><pubDate>Fri, 16 Dec 2016 13:21:17 +0800</pubDate><description><![CDATA[项目中经常会遇到怎么去获取项目中配置文件的路径，或者是读取配置文件中的值。现在将方法记录下来，供大家学习参考。
1.读取配置文件中的属性值，这里的配置文件指的是conf.properties。如果大家有其他配置文件，记得把名字改下就可以了。
import java.io.File;
import java.io.FileInputStream;
import java.io.IOExcepti]]></description><category></category></item><item><title><![CDATA[VOIP听筒与扬声器的切换]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/53433847</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/53433847</guid><author>wangli61289</author><pubDate>Fri, 02 Dec 2016 14:06:18 +0800</pubDate><description><![CDATA[最近在学习用pjsip开发网络电话，中间遇到了各种问题，现把解决方法记录下来。
- (void)setSpeaker:(BOOL)isOpen
{
    UInt32 route;
    OSStatus error;
    UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
    
    error = Audi]]></description><category></category></item><item><title><![CDATA[HTTP POST GET PUT请求处理]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/51516610</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/51516610</guid><author>wangli61289</author><pubDate>Fri, 27 May 2016 14:44:15 +0800</pubDate><description><![CDATA[public class HttpUtils {


	/**
	 * post 请求
	 * 
	 * @param url
	 * @param jsonObject
	 * @return
	 */
	public static String requestPost(String url, String parameters) {
		String body = null;
		if (St]]></description><category></category></item><item><title><![CDATA[SpringMVC与shiro的整合]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/51248378</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/51248378</guid><author>wangli61289</author><pubDate>Tue, 26 Apr 2016 10:46:07 +0800</pubDate><description><![CDATA[好久没有写过博客了，之前有好几篇想记录下来的，但是拖着拖着，就不了了之了。这次趁印象还很深刻，记录下Springmvc与shiro的整合过程，方便以后学习。
首先，来看下pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"]]></description><category></category></item><item><title><![CDATA[Git常用命令速查表]]></title><link>https://blog.youkuaiyun.com/wangli61289/article/details/45576025</link><guid>https://blog.youkuaiyun.com/wangli61289/article/details/45576025</guid><author>wangli61289</author><pubDate>Fri, 08 May 2015 10:09:00 +0800</pubDate><description><![CDATA[1.创建版本库 
git clone                                            #克隆远程的版本库 
git init                                                        #初始化本地版本库 
git checkout -b 本地分支名 远程分支名        #获取远程分支的代码 
]]></description><category></category></item></channel></rss>