<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java_fisher的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_fisher</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_fisher]]></copyright><item><title><![CDATA[spring-security 是怎么实现同一个用户登录次数限制的（包含源码分析）]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/106983554</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/106983554</guid><author>java_fisher</author><pubDate>Sat, 27 Jun 2020 16:02:16 +0800</pubDate><description><![CDATA[package com.example.demo.sms;

import com.example.demo.core.AbstractSecurityConfigurerAdapter;
import com.example.demo.core.MySimpleRedirectSessionInformationExpiredStrategy;
import org.springframework.beans.factory.annotation.Autowired;
import org.spring.]]></description><category></category></item><item><title><![CDATA[nginx 根据cookie分流 配置文件]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/100107613</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/100107613</guid><author>java_fisher</author><pubDate>Tue, 27 Aug 2019 20:10:42 +0800</pubDate><description><![CDATA[#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid    logs/nginx.pid;


events {
  worker_connections ...]]></description><category></category></item><item><title><![CDATA[ehcache整合springboot]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/100039569</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/100039569</guid><author>java_fisher</author><pubDate>Fri, 23 Aug 2019 15:42:58 +0800</pubDate><description><![CDATA[ehcache.xml配置内容
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
...]]></description><category></category></item><item><title><![CDATA[nginx 根据cookie分流]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/100039226</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/100039226</guid><author>java_fisher</author><pubDate>Fri, 23 Aug 2019 15:32:56 +0800</pubDate><description><![CDATA[背景,项目多节点部署,项目中使用了本地缓存,同一用户需要在同一个服务上操作,才能使用到本地缓存.

考虑过使用ip分流,由于ip是阿里转发后再到我们的ngxin,所以这个时候的ip不可靠,也许不是用户原始ip,

所以使用cookie分流.

因为我们每次登陆成功都会返回随机cookie,但是同一个用户的cookie在访问服务期间不会变,所以可以利用cookie

$COOKIE_test1 语法...]]></description><category></category></item><item><title><![CDATA[mysql 存储过程方式 实现动态行转列]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/99316311</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/99316311</guid><author>java_fisher</author><pubDate>Mon, 12 Aug 2019 17:38:25 +0800</pubDate><description><![CDATA[CREATE DEFINER=`Dcadmin`@`%` PROCEDURE `query_action_company`(IN surveyId varchar(100),IN formatId varchar(100),IN startRow INTEGER(16),IN endRow INTEGER(16),IN latestProcessId varchar(100))
  READS...]]></description><category></category></item><item><title><![CDATA[mysql实现动态行转列,不用存储过程,mybatis]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/99313734</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/99313734</guid><author>java_fisher</author><pubDate>Mon, 12 Aug 2019 17:34:16 +0800</pubDate><description><![CDATA[动态行转列,网上很多例子都是通过存储过程来实现,其实这样挺麻烦,可以通过现在代码中拼接字符串方式,实现.

使用场景,当需要行转列查询时,如果转化后列是动态的,可以先将列的字段去重查询出来,然后在java代码中进行sql拼装,然后再作为参数传入sql,注意mybatis去参数的时候用${param},才能编译,不能使用#{param}方式,不然会当成字符串不会进行编译.



实例,在不确...]]></description><category></category></item><item><title><![CDATA[mysql 存储过程]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/98754736</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/98754736</guid><author>java_fisher</author><pubDate>Wed, 07 Aug 2019 16:13:33 +0800</pubDate><description><![CDATA[delimiter ;;
drop procedure if exists `proc_test` ;;
CREATE PROCEDURE `proc_test`()
BEGIN
    -- 定义变量,变量参数个数和类型和查出来的要一致
    DECLARE done INT DEFAULT FALSE;
    DECLARE field_1 VARCHAR(20);
    DECLAR...]]></description><category></category></item><item><title><![CDATA[批量文件打包下载]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/82707956</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/82707956</guid><author>java_fisher</author><pubDate>Fri, 14 Sep 2018 20:01:05 +0800</pubDate><description><![CDATA[最近工作上有个需求,获取批量文件,打包下载,如果源文件名中有重复,则需要重命名(加角标),如果压缩后文件超过20兆,出于宽带考虑,不下载,但给与提示.

思路. 先获取所有文件,重命名,再压缩存起来再判断大小,满足大小写出流,不满足给与提示

 

话不多说,如下代码可以直接运行,赋有运行结果展示.

 

package com.fisher.cloud.controller;

import ...]]></description><category></category></item><item><title><![CDATA[数据库储存过程超简单实例]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/79161085</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/79161085</guid><author>java_fisher</author><pubDate>Fri, 15 Jun 2018 15:32:20 +0800</pubDate><description><![CDATA[网上看了半天都没找到一个完整储存过程从创建到调用的实例,于是自己写了一个简单的实例.

数据库创建存储过程,定义个函数 格式如下,开头DELIMITER //和结尾/DELIMITER  和BEGIN  和 END 是固定格式

定了一个叫test2()的方法(在mapper.xml中会指定这个函数名),in表示入参,varchar(255)参数长度为255

1 创建储存过程函数例子(统计指定i...]]></description><category></category></item><item><title><![CDATA[spring jar包作用]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/79169975</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/79169975</guid><author>java_fisher</author><pubDate>Fri, 26 Jan 2018 11:00:21 +0800</pubDate><description><![CDATA[spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar,
 and spring-hibernate2.jar。

spring-src.zip就是所有的源代码压缩包。

除了spring.jar 文件，Spring 还包括有其它21 个独立的jar 包，各自包含着对应的Spring组件，用]]></description><category></category></item><item><title><![CDATA[spring中引入配置文件]]></title><link>https://blog.youkuaiyun.com/java_fisher/article/details/79169607</link><guid>https://blog.youkuaiyun.com/java_fisher/article/details/79169607</guid><author>java_fisher</author><pubDate>Fri, 26 Jan 2018 10:45:56 +0800</pubDate><description><![CDATA[1.如果是引入的是xml配置文件:
使用 <import resource="classpath:*.xml"
 />引入。

2.引入properties文件
方式一:单个配置文件()配置ignore-unresolvable="true" 解决延迟加载异常):

context:property-placeholder location="classpath*:propertie]]></description><category></category></item></channel></rss>