<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[leonsccott的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/leonsccott</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; leonsccott]]></copyright><item><title><![CDATA[java.lang.NoClassDefFoundError: sun/misc/BASE64Decoder解决思路IDEA]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/124157481</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/124157481</guid><author>leonsccott</author><pubDate>Wed, 13 Apr 2022 20:55:43 +0800</pubDate><description><![CDATA[解决思路
1、jdk版本问题
一定是jdk1.8以上的版本才会存在这类问题
这个问题很好排查和解决，就是看自己的Project Structure、Java Compiler和jdk有关的地方是否都改为1.8及以下
2、有多个jdk环境

上图中的jar包就是BASE64Encoder所在的jar包，我们在修改了jdk情况下仍然报错，就将这个jar包添加到环境变量中，在下图的变量名中添加rt.jar，就可以解决上述问题，针对一下idea版本2019.2.4，可能是idea的问题

.;%JAVA_HOME%]]></description><category></category></item><item><title><![CDATA[MySQL索引优化（一）性能分析-explain]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107772986</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107772986</guid><author>leonsccott</author><pubDate>Wed, 05 Aug 2020 00:08:53 +0800</pubDate><description><![CDATA[一、什么情况下需要创建索引

主键自动建立唯一索引
频繁作为查询条件的字段应该创建索引
查询中与其它表关联的字段，外键关系建立索引
频繁更新的字段不适合创建索引，每次更新不单单是更新了记录还会更新索引
Where条件里用不到的字段不创建索引
单键/组合索引的选择问题，who? (在高并发下倾向创建组合索引)
查询中排序的字段，排序字段若通过索引去访问将大大提高排序速度
查询中统计或者分组字段

二、什么情况下不要创建索引

表记录太少
经常增删改查的表
数据重复且分布平均的表字段，因此应该只为最经常查询和最]]></description><category></category></item><item><title><![CDATA[端口占用，杀死线程，windows]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107659648</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107659648</guid><author>leonsccott</author><pubDate>Wed, 29 Jul 2020 11:31:32 +0800</pubDate><description><![CDATA[先以管理员模式运行cmd
查找占用端口
netstat -aon|findstr 端口号

20888就是当前进程号
杀死进程
taskkill -PID  进程号  -F
taskkill -PID  20888  -F

]]></description><category></category></item><item><title><![CDATA[已排序数组删除重复元素]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107560001</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107560001</guid><author>leonsccott</author><pubDate>Fri, 24 Jul 2020 14:41:26 +0800</pubDate><description><![CDATA[删除排序数组中的重复项：
思路可以转变为：
前提数组有序-&gt;可以理解为相邻元素间要不相同，要不不同
要求删除重复元素，实际上就是将不重复的元素移到数组的左侧。
假如一个有序数组为
[1，1，1，2，2，3，4，5]
使用双指针法，分别为p和q
在循环遍历过程中，第一轮可以将数组表示为
p在1的位置上q在第二个2的位置上，随后p+1并将2的值赋给p+1
[1，2，1，2，2，3，4，5]
第二轮
[1，2，3，2，2，3，4，5]
第三轮
[1，2，3，4，2，3，4，5]
第四轮
[1，2，3，4，5]]></description><category></category></item><item><title><![CDATA[Shiro学习（4）整合Redis统一会话管理]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107317171</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107317171</guid><author>leonsccott</author><pubDate>Mon, 13 Jul 2020 22:08:11 +0800</pubDate><description><![CDATA[一、shiro的会话管理
SessionManager 会话管理器：管理所有Subject的session创建、删除、失效、验证、维护等工作。
由SecurityManager管理，可以把SessionManager看作为接口。
Shiro提供了三种默认实现：

DefaultSessionManager：用于JavaSE环境
ServletContainerSessionManager（默认存放位置HttpSession）：用于Web环境，直接使用servlet容器的会话。
DefaultWebSessi]]></description><category></category></item><item><title><![CDATA[Shiro学习（3）shiroConfig配置类]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107312896</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107312896</guid><author>leonsccott</author><pubDate>Mon, 13 Jul 2020 11:35:04 +0800</pubDate><description><![CDATA[一、Shiro配置类创建流程
创建shiro配置函数ShiroConfig可以分为四大块：
1、创建realm
2、创建安全管理器
3、配置shiro过滤器工厂
4、开启对shiro注解的支持
1、创建Realm
可以直接创建CustonRealm这个对象，也可以通过Realm创建。
	@Bean
    public Realm getRealm(){
        CustonRealm custonRealm = new CustonRealm();
        return custonRea]]></description><category></category></item><item><title><![CDATA[shiro学习（2）自定义Realm及测试]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107302683</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107302683</guid><author>leonsccott</author><pubDate>Sun, 12 Jul 2020 18:37:21 +0800</pubDate><description><![CDATA[自定义Realm分为以下几步骤：
1、继承AuthorizingRealm，并实现其中的重写方法：setName，doGetAuthorizationInfo，doGetAuthenticationInfo
2、认证
根据用户名密码登录，将用户数据保存（安全数据）
主要目的：比较用户名密码是否和数据库一致
将安全数据存入shiro保管
参数：AuthenticationToken登录构造的usernamepasswordtoken
实现步骤如下：
1、构造usernamepasswordtoken
2、获取]]></description><category></category></item><item><title><![CDATA[shiro学习（1）基础入门：验证用户登录、用户权限]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107301189</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107301189</guid><author>leonsccott</author><pubDate>Sun, 12 Jul 2020 16:54:32 +0800</pubDate><description><![CDATA[Shiro内部结构剖析
shiro内部结构图

1、认证流程（也就是登录）
Subject对象传入Security Manager并将内容交给认证器 Authenticator ，但认证器不做任何处理，因为在这时认证器不了解登录信息（数据库，用户名密码，认证规则等），正真进行逻辑判断的地方Realms（从数据库获取数据）从中可以获取很多很多的认证规则。
2、Authrizer 授权器：
判断Subject是否有权限进行相关操作，授权器同理，需要使用Realms进行权限信息判断。
3、SessionManag]]></description><category></category></item><item><title><![CDATA[Redis学习（5）自定义RedisTemplate、Redis的发布订阅]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107122959</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107122959</guid><author>leonsccott</author><pubDate>Sat, 04 Jul 2020 12:57:50 +0800</pubDate><description><![CDATA[自定义RedisTemplate配置，可直接使用。
package com.wj.config;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annot]]></description><category></category></item><item><title><![CDATA[Redis学习（4）Jedis、Springboot整合]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107121577</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107121577</guid><author>leonsccott</author><pubDate>Sat, 04 Jul 2020 12:11:01 +0800</pubDate><description><![CDATA[1、通过jedis实现事务控制
总体流程和redis命令行操作相似，一下不做赘述，有需要可看Redis学习（3）
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

public class testPing {
    public static void main(String[] args) {
        Jedis j]]></description><category></category></item><item><title><![CDATA[idea基于maven创建新项目需要修改的内容]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107120736</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107120736</guid><author>leonsccott</author><pubDate>Sat, 04 Jul 2020 10:24:38 +0800</pubDate><description><![CDATA[不修改会造成语法条件不支持而报错，此处记录下修改内容！！！




]]></description><category></category></item><item><title><![CDATA[Redis学习（3）redis事务、乐观锁]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107111517</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107111517</guid><author>leonsccott</author><pubDate>Fri, 03 Jul 2020 19:19:13 +0800</pubDate><description><![CDATA[1、redis事务
Redis单条命令时保证原子性，但事务不保证原子性
Redis事务没有隔离级别的概念，只有发起执行命令的时候才会执行
1.1正常执行事务
multi==&gt;开启事务
…输入相关执行代码
exec==&gt;执行事务
discard==&gt;放弃、取消事务（事务队列中的命令都不会被执行）
多条命令入栈可保证同时成功同时失败
如果命令出错，所有入队指令都不会执行
如果运行时出错，但没有语法错误，那么其他入队命令是可以正常执行的==&gt;所以事务不保证原子性
1.2 监控
悲观锁:

]]></description><category></category></item><item><title><![CDATA[redis学习（2）----geospatial、Hyperloglog、Bitmaps]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107108043</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107108043</guid><author>leonsccott</author><pubDate>Fri, 03 Jul 2020 17:52:35 +0800</pubDate><description><![CDATA[Redis三种特殊数据类型
1、geospatial地理位置
该功能可以推算地理位置信息，两地之间的距离
只有6个命令：
GEOADD
 添加地理位置，可通过java直接导入！
 参数 key 值（经度 纬度 名称）
  
geoadd china:city 116.40 39.90 beijin
geoadd china:city 121.47 31.23 shanghai
geoadd china:city 160.50 29.53 chongqing 114.05 22.52 shenzhen
geo]]></description><category></category></item><item><title><![CDATA[shiro整合springboot]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/106975152</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/106975152</guid><author>leonsccott</author><pubDate>Fri, 03 Jul 2020 11:14:30 +0800</pubDate><description><![CDATA[shiro整合流程示意图

常见过滤器

shiro注解
@RequiresRoles(value={"admin","user"})//同时具有相同角色
@RequiresPermissions("user:update:*")//判断权限字符串



]]></description><category></category></item><item><title><![CDATA[redis(docker)学习、操作(1)--五大基础类型--持续更新]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107092658</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107092658</guid><author>leonsccott</author><pubDate>Fri, 03 Jul 2020 11:13:39 +0800</pubDate><description><![CDATA[通过linux命令行操作redis数据库
1  docker exec -i -t 容器id /bin/bash
2  redis-cli
3  操作前缀变为127.0.0.1:6379&gt;即进入redis数据库

常用redis命令：
清除当前数据库：  flushdb
清除全部数据库内容： flushall
切换数据库： select 数据库序号 select 3切换到3号数据库
查看DB大小： DBSIZE
查看数据库所有key： keys *

插入key：        set name zs]]></description><category></category></item><item><title><![CDATA[centos7使用docker配置nginx服务器，容器无法运行]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/107078875</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/107078875</guid><author>leonsccott</author><pubDate>Thu, 02 Jul 2020 10:28:29 +0800</pubDate><description><![CDATA[nginx正常启动能访问到nginx首页，但通过挂载配置文件时容器创建成功却无法启动。
docker run --name nginx81 -d -p 81:80 
-v /data/nginx/html:/usr/share/nginx/html 
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  
-v /data/nginx/logs:/var/log/nginx 
-v /data/nginx/conf.d:/etc/nginx/conf.d]]></description><category></category></item><item><title><![CDATA[Shiro realm自定义类MD5加密加盐加哈希散列]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/106971414</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/106971414</guid><author>leonsccott</author><pubDate>Fri, 26 Jun 2020 18:24:10 +0800</pubDate><description><![CDATA[1、Shrio使用md5、随机salt、hash散列
导入shiro依赖
&lt;dependency&gt;
     &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
     &lt;artifactId&gt;shiro-core&lt;/artifactId&gt;
     &lt;version&gt;1.5.3&lt;/version&gt;
&lt;/dependency&gt;

在shiro中有一个函数可以自动生成MD5+salt+hash]]></description><category></category></item><item><title><![CDATA[durid配置内容及使用]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/106870719</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/106870719</guid><author>leonsccott</author><pubDate>Sat, 20 Jun 2020 15:58:02 +0800</pubDate><description><![CDATA[一、druid   yml编写
对durid的相关内容的配置。
需导入相关依赖：
&lt;dependency&gt;
    &lt;groupId&gt;log4j&lt;/groupId&gt;
    &lt;artifactId&gt;log4j&lt;/artifactId&gt;
    &lt;version&gt;1.2.17&lt;/version&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
    &lt;groupId&gt;com.ali]]></description><category></category></item><item><title><![CDATA[vue-cli与springboot直接打包部署服务器流程]]></title><link>https://blog.youkuaiyun.com/leonsccott/article/details/106818084</link><guid>https://blog.youkuaiyun.com/leonsccott/article/details/106818084</guid><author>leonsccott</author><pubDate>Wed, 17 Jun 2020 21:00:43 +0800</pubDate><description><![CDATA[vue-cli与springboot直接整合部署的坑
默认读者已解决前后端跨域问题，项目可以通过maven打成jar包
1.vue-cli打包
（1）打包部署服务器之前，记得把项目中axios请求访问路径，从本地改为服务器ip地址（本人就被坑在这里了），谷歌浏览器报 connection refused的错
（2）在命令行框，跳转到根目录路径输入：npm run build，对vue进行打包，生成的dist文件夹，即为打包好的前端静态资源
2.springboot打包
（1）将该dist文件夹复制到spri]]></description><category></category></item></channel></rss>