<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[THanHan的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/THanHan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; THanHan]]></copyright><item><title><![CDATA[springboot项目shiro整合ehcache缓存]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/115303945</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/115303945</guid><author>THanHan</author><pubDate>Mon, 29 Mar 2021 17:20:44 +0800</pubDate><description><![CDATA[EHCache是sourceforge的开源缓存项目，现在已经具有独立的官网。其本身是纯Java实现的，所以和绝大多数的java项目无缝整合，例如Hibernate的缓存就是基于EHCache而实现的。
EHCache支持内存和磁盘的缓存，默认是储存在内存当中，当内存不够是允许把缓存数据同步到磁盘当中，所以不需要担心内存不够的问题。
EHCache直接在jvm虚拟机中缓存，速度快，效率高；但缓存共享麻烦集群分布式应用不方便。
EHCache API 演示
1.引入依赖
        &lt;shiro-e]]></description><category></category></item><item><title><![CDATA[shiro的两种最常用的注解]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/115297484</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/115297484</guid><author>THanHan</author><pubDate>Mon, 29 Mar 2021 11:43:46 +0800</pubDate><description><![CDATA[1.RequiresRoles
例如管理员，员工，访客等
@RequiresRoles("admin")
void delete();
如果subject中有admin角色，才可以访问delete方法
如果没有角色则报错AuthorizationException
2.RequiresPermissions
@RequiresPermissions("user:delete")
void delete();
如果subject中有delete权限，才可以访问delete方法
如果没有权限则报错。

...]]></description><category></category></item><item><title><![CDATA[解决：GET http://localhost:**/static/js/jquery.min.js net::ERR_ABORTED 404]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/115250304</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/115250304</guid><author>THanHan</author><pubDate>Fri, 26 Mar 2021 17:01:24 +0800</pubDate><description><![CDATA[解决引用jquery文件始终不起作用的相关原因
1.首先检查自己引入路径是否正确


2.确保在properties或yml中配置加载静态资源
spring.mvc.static-path-pattern=/static/**

3.以上确保都没有问题可以尝试清理（clean）一下项目（我这里使用的maven自带的）然后重启项目即可。



4.好了我就是使用第三种方法解决的，具体为什么会这样我也理解很模糊就不多bb了，希望可以帮助到大家。

...]]></description><category></category></item><item><title><![CDATA[Holer内网穿透指定一个key就实现外网访问内网数据库超简单]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/110368500</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/110368500</guid><author>THanHan</author><pubDate>Mon, 30 Nov 2020 10:03:36 +0800</pubDate><description><![CDATA[Holer是一个免费开源的内网穿透工具，它可以将局域网服务器代理到公网的内网穿透工具，支持转发基于TCP协议的报文。
一、下载并解压
点击下载
二、修改配置文件

本地的Tomcat端口是8080，将HOLER_ACCESS_KEY=HOLER_CLIENT-2F8D8B78B3C2A0AE配置到holer-client/conf/holer.conf文件里

如果您的Tomcat端口是8088或者80请选择对应的记录进行修改，如果您的Tomcat端口均不在上述列表里，建议将本地的Tomcat端口修改为上述]]></description><category></category></item><item><title><![CDATA[【垃圾收集 Garbage Collection】GC overhead limit exceeded] with root cause报错已解决]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/109450998</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/109450998</guid><author>THanHan</author><pubDate>Mon, 02 Nov 2020 16:14:06 +0800</pubDate><description><![CDATA[报错原因
通过观察jvm监控排查发现：程序需要New一个很大的对象，GC发现内存不够后，对内存进行回收，但是发现回收后的内存还不能满足大对象的需要。应此造成了内存溢出。

解决
解决方案：修改jvm参数！！！不会可以点我！！！
根据自己的业务需求来修改参数。

...]]></description><category></category></item><item><title><![CDATA[pandas计算最大值，最大值，均值，方差，标准差]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/109382601</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/109382601</guid><author>THanHan</author><pubDate>Fri, 30 Oct 2020 11:59:18 +0800</pubDate><description><![CDATA[maxVal = data['value'].max()    # 最大值
        mimVal = data['value'].min()    # 最大值
        meanVal = data['value'].mean()  # 均值
        varVal = data['value'].var() 	# 方差
        stdVal = data['value'].std()    # 标准差


]]></description><category></category></item><item><title><![CDATA[解决Web server failed to start. Port 8080 was already in use,Windows下查看端口占用]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108732572</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108732572</guid><author>THanHan</author><pubDate>Tue, 22 Sep 2020 15:08:58 +0800</pubDate><description><![CDATA[查找所有运行的端口
netstat -ano
查看被占用端口对应的 PID
netstat -aon|findstr "8080"

查看指定 PID 的进程
tasklist|findstr "14548"

结束进程
taskkill /T /F /PID 14548


]]></description><category></category></item><item><title><![CDATA[sql模糊查询like]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108282416</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108282416</guid><author>THanHan</author><pubDate>Fri, 28 Aug 2020 16:34:06 +0800</pubDate><description><![CDATA[问：下面哪个语句查询快？
select * from table where name like '%T';
select * from table where name like 'T%';

]]></description><category></category></item><item><title><![CDATA[【算法】-移动平均法，浅入理解]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108272598</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108272598</guid><author>THanHan</author><pubDate>Fri, 28 Aug 2020 09:04:16 +0800</pubDate><description><![CDATA[移动平均法是用一组最近的实际数据值来预测未来一期或几期数据的一种常用方法。
其计算方法是：
Ft=(At-1+At-2+At-3+…+At-n)/n
式中
Ft：对下一期的预测值；
n：移动平均的时期个数；
At-1 、At-2、At-n：前期实际值；
采用移动平均法适合于即期预测，当数据既不快速增长也不快速下降时，移动平均法能够有效消除数据的随机误差。
如果计算的数据均值为0（表明数据可能有正有负），这样得到的总体趋势线是准确的。
而实际采集的数据却明显与此不同，如果采简单进行移动平均，必然会将大量的具有]]></description><category></category></item><item><title><![CDATA[Linux 运行jar包后台运行]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108265046</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108265046</guid><author>THanHan</author><pubDate>Thu, 27 Aug 2020 17:42:32 +0800</pubDate><description><![CDATA[Linux 运行jar包命令如下：
一、不可以操作
java -jar test.jar
二、可以执行操作，但ssh窗口关闭时，程序会停止运行。
java -jar test.jar &amp;
&amp;代表在后台运行。
三、不挂断运行可以执行操作，窗口关闭时程序仍然运行。
nohup java -jar test.jar &amp;
当用nohup命令执行作业时，缺省情况下该作业的所有输出被重定向到nohup.out的文件中。
四、不挂断运行可以执行操作，窗口关闭时程序仍然运行，并将输出重定向到指定的文]]></description><category></category></item><item><title><![CDATA[redis的俩种持久化机制AOF&RDB]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108262438</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108262438</guid><author>THanHan</author><pubDate>Thu, 27 Aug 2020 16:26:26 +0800</pubDate><description><![CDATA[什么叫持久化？
将数据（如内存中的对象）保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在数据库中，或者存储在磁盘文件中、 XML 数据文件中等等。
Redis 为什么要持久化？
Redis 中的数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作，而且这些操作都是原子性的。在此基础上，Redis 支持各种不同方式的排序。与 Memcached 一样，为了保证效率，数据都是缓存在内存中。 对，数据都是缓存在内存中的，当你重启系统或者关闭系统后，缓存在内存]]></description><category></category></item><item><title><![CDATA[Java.sql.SQLException: 无效的列索引其实是个低级的错误]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108261899</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108261899</guid><author>THanHan</author><pubDate>Thu, 27 Aug 2020 15:44:12 +0800</pubDate><description><![CDATA[java.sql.SQLException: 无效的列索引其实是个低级的错误，原因无非几个：


1、sql串的?号数目和提供的变量数目不一致：
例如：jdbcTemplate.update(sql, new Object[] {newState,oldState})
如果sql里面有1个?号，Object[]送了2个，就会报错。


2、sql串里的?号书写不正确
英文?和中文？有时难以区分。


3、sql串的?号用’'括了起来。
例如：sql="UPDATE abc SET abc.name='?' ]]></description><category></category></item><item><title><![CDATA[redis缓存击穿，缓存穿透和缓存雪崩解决方案]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108255081</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108255081</guid><author>THanHan</author><pubDate>Thu, 27 Aug 2020 11:47:35 +0800</pubDate><description><![CDATA[一、缓存击穿
1.什么是缓存击穿
缓存击穿也就是说当redis缓存中有一个key是大量请求同时访问的热点数据，如果突然这个key时间到了，那么大量的请求在缓存中获取不到该key，穿过缓存直接来到数据库导致数据库崩溃，这样因为单个key失效而穿过缓存到数据库称为缓存击穿。

2.怎么办，怎么解决

最简单粗暴的解决方案就是让热点key不设置过期时间，即key一直存在于缓存中，更新时直接覆盖即可。
设置定时任务检测要过期的key，然后在将要过期的时候重新从数据库把数据刷新到缓存中，这样的方式增加系统复杂度，并且]]></description><category></category></item><item><title><![CDATA[IDEA设置头注释,自定义author、date和description附上模板代码]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108226115</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108226115</guid><author>THanHan</author><pubDate>Tue, 25 Aug 2020 17:54:00 +0800</pubDate><description><![CDATA[一、设置

二、模板代码
 /**
@Author: thh
@Date: ${DATE}
@Time: ${TIME}
@Description:
*/

三、测试创建一个类


]]></description><category></category></item><item><title><![CDATA[Jvm调优和SpringBoot项目优化]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108222567</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108222567</guid><author>THanHan</author><pubDate>Tue, 25 Aug 2020 17:22:37 +0800</pubDate><description><![CDATA[Jvm调优
未设置JVM参数的情况，默认情况下，没有设置任何Jvm参数。
一、修改配置文件

其中比较重要的有：

server.tomcat.max-connections=0 # Maximum number of connections that the server accepts and processes at any given time.
server.tomcat.max-http-header-size=0 # Maximum size, in bytes, of the HTTP me]]></description><category></category></item><item><title><![CDATA[idea中安装VisualVM监控jvm]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108223199</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108223199</guid><author>THanHan</author><pubDate>Tue, 25 Aug 2020 16:14:26 +0800</pubDate><description><![CDATA[一、安装VisualVM插件

二、配置VisualVM

三、启动项目

]]></description><category></category></item><item><title><![CDATA[安装vim命令]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108039729</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108039729</guid><author>THanHan</author><pubDate>Sun, 16 Aug 2020 17:57:15 +0800</pubDate><description><![CDATA[命令
yum -y install vim*

]]></description><category></category></item><item><title><![CDATA[linux 下安装wget]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/108038914</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/108038914</guid><author>THanHan</author><pubDate>Sun, 16 Aug 2020 17:13:01 +0800</pubDate><description><![CDATA[命令：
yum install wget

]]></description><category></category></item><item><title><![CDATA[Java用几行代码批量读取csv文件]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/107937256</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/107937256</guid><author>THanHan</author><pubDate>Tue, 11 Aug 2020 16:02:57 +0800</pubDate><description><![CDATA[引包
   &lt;dependency&gt;
        &lt;groupId&gt;net.sourceforge.javacsv&lt;/groupId&gt;
        &lt;artifactId&gt;javacsv&lt;/artifactId&gt;
        &lt;version&gt;2.0&lt;/version&gt;
   &lt;/dependency&gt;

代码
   //创建集合存放对象
        List&lt;T&gt; list = ne]]></description><category></category></item><item><title><![CDATA[贼TM好用的IDEA springboot快速逆向生成SQL代码]]></title><link>https://blog.youkuaiyun.com/THanHan/article/details/107468699</link><guid>https://blog.youkuaiyun.com/THanHan/article/details/107468699</guid><author>THanHan</author><pubDate>Mon, 20 Jul 2020 17:50:57 +0800</pubDate><description><![CDATA[1，下载并安装EasyCode插件

Setting-&gt;Plugins。搜索EasyCode插件，并重启Idea编辑器


2，配置MYSQL数据源


3，右击打开

四，根据需求选择

五，完成


]]></description><category></category></item></channel></rss>