自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 缓存问题(五) Redis 缓存过期删除机制

视频地址: https://www.bilibili.com/video/BV1Ha411c7hB代码地址: https://gitee.com/crazyliyang/video-teaching.git1.删除机制规则Redis 无论有没有设置expire, 都会遵循redis的配置好的删除机制, 规则如下: 默认的规则是 volatile-lru 设置了expire的key, 将会在过期时间到后删除; 没有设置expire的缓存key,不会被删除; ...

2020-11-11 09:59:19 1995

原创 缓存问题(四) 缓存穿透、缓存雪崩、缓存并发 解决案例

视频地址: https://www.bilibili.com/video/BV1Ha411c7hB代码地址: https://gitee.com/crazyliyang/video-teaching.git1. 缓存穿透 解决案例使用布隆过滤器核心代码, 使用 Redisson 库的布隆过滤器: org.redisson.api.RBloomFilter<!-- Redis 客户端工具 redisson 实现对 Redisson 的自动化配置--...

2020-11-10 23:54:53 482 1

原创 缓存问题(三) 缓存穿透、缓存雪崩、缓存并发 解决方案分析

代码地址: https://gitee.com/crazyliyang/video-teaching.git视频地址: https://www.bilibili.com/video/BV1Ha411c7hB1. 缓存穿透缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。查询一个根部不存在的Key, 必然就会每次都去查询.

2020-11-10 23:53:04 209

原创 缓存问题(二) 布隆过滤器(Bloom Filter) 介绍和原理

代码地址: https://gitee.com/crazyliyang/video-teaching.git视频地址: https://www.bilibili.com/video/BV1Ha411c7hB1. 什么情况下需要布隆过滤器?先来看几个比较常见的例子检查一个用户是否在白名单中 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上 在网络爬虫里,一个网址是否被访问过 yahoo, gmail等邮箱垃圾邮件过滤功能这几个例子有一个共同的特点: 如何判断一个元素是否存在一个集合.

2020-11-10 23:51:20 275

原创 缓存问题(一) 缓存穿透、缓存雪崩、缓存并发 核心概念

1. 缓存穿透缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。查询一个根部不存在的Key, 必然就会每次都去查询数据库,而每次查询都是空,每次又都不会进行缓存。假如有恶意攻击,就可以利用这个漏洞,对数据库造成压力,甚至压垮数据库....

2020-11-10 23:46:28 192

原创 Spring Boot 自动装配原理源码分析(五) SpringBoot自动装配源码分析及案例

视频地址:https://www.bilibili.com/video/BV1yr4y1w7ia代码仓库: https://gitee.com/crazyliyang/video-teaching我们以 HttpEncodingAutoConfiguration 来进行说明讲解在 spring-boot-autoconfigure 项目的 META-INF/spring.factories 文件中# Auto Configureorg.springframew...

2020-11-10 23:12:57 151

原创 Spring Boot 自动装配原理源码分析(四)SpringBoot的@ConfigurationProperties注解

视频地址:https://www.bilibili.com/video/BV1yr4y1w7ia代码仓库: https://gitee.com/crazyliyang/video-teaching看项目案例: spring-boot-configuration-properties本项目比较简单/*** 配置类 <-> application.yml 节点 { person }*/@Component@ConfigurationPro...

2020-11-10 23:10:13 146

原创 Spring Boot 自动装配原理源码分析(三) Spring Boot 的条件注解

视频地址:https://www.bilibili.com/video/BV1yr4y1w7ia代码仓库: https://gitee.com/crazyliyang/video-teaching常用条件注解汇总如下:注解 处理类 说明 ConditionalOnBean OnBeanCondition 指定的bean都在Spring容器中时才匹配。 ConditionalOnClass OnClassCondition 指定的类都在clas...

2020-11-10 23:06:51 162 1

原创 Spring Boot 自动装配原理源码分析(二) 手写实现基于Spring的SPI及自动装配

1.关于SPISPI机制: SPI的全名为( Service Provider Interface ) 这个是针对厂商或者插件的。(1)SPI思想 系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案, xml解析模块、jdbc模块的方案等。 向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。 一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。 为了实现在模块装

2020-11-10 22:58:25 266

原创 Spring Boot 自动装配原理源码分析(一) Spring的@Import注解说明

直接上代码说明: 建立项目 spring-import-selector核心 MyEnableAutoImportBeans@Retention(RetentionPolicy.RUNTIME)@Documented@Target(ElementType.TYPE)@Import(value = { Dog.class, // 直接 import 一个普通类, 也可以被注册到 IOC 容器中 MyImportSelector.clas...

2020-11-10 22:55:28 137

原创 SpringSecurity专题从入门到源码剖析(五) 核心过滤器

视频教程地址: https://www.bilibili.com/video/BV1kT4y1F7Tc代码地址: https://gitee.com/crazyliyang/video-teaching1. 从SpringSecurityDemo项目启动的DEBUG日志中Copy出来的日志信息, 如下是相关部分:o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: any request, [ org.s...

2020-11-04 01:32:07 238

原创 SpringSecurity专题从入门到源码剖析(四) 核心配置

视频教程地址: https://www.bilibili.com/video/BV1kT4y1F7Tc代码地址: https://gitee.com/crazyliyang/video-teaching1. 核心配置类 WebSecurityConfigurerAdapter@Configuration@EnableGlobalMethodSecurity(prePostEnabled = true) // 注意public class WebSecurityConfigure...

2020-11-04 01:28:44 187 1

原创 SpringSecurity专题从入门到源码剖析(三) 核心组件

视频教程地址: https://www.bilibili.com/video/BV1kT4y1F7Tc代码地址: https://gitee.com/crazyliyang/video-teaching1. SecurityContextHolderpublic class SecurityContextHolder { // 省略非核心代码 ... // ... public static final String MODE_THREADLOCAL...

2020-11-04 01:25:48 196

原创 SpringSecurity专题从入门到源码剖析(二) 入门案例

视频教程地址: https://www.bilibili.com/video/BV1kT4y1F7Tc代码地址: https://gitee.com/crazyliyang/video-teaching1.入门案例一: sprint-security-demo先新建父工程 spring-security-parent 父工程 pom.xml 文件如下:<?xml version="1.0" encoding="UTF-8"?><projec...

2020-11-04 01:23:53 164

原创 SpringSecurity专题从入门到源码剖析(一) 课程概览

第一章. SpringSecurity 概述介绍视频教程地址: https://www.bilibili.com/video/BV1kT4y1F7Tc代码地址: https://gitee.com/crazyliyang/video-teaching1. 概述基本上,在所有的开发的系统中,都必须做认证(authentication)和授权(authorization),以保证系统的安全性。???? 考虑到很多胖友对认证和授权有点分不清楚,艿艿这里引用一个网上有趣的例子:Aut.

2020-11-04 01:21:18 251 1

原创 Spark学习之 Spark SQL( 一 )

感谢大牛的系列文章, 本文只是本人学习过程的记录, 首先向大神致敬!https://blog.csdn.net/lovehuangjiaju/article/details/486618471.创建文件people.json{"name":"Michael", "age":27}{"name":"Andy", "age":30}{"name":&

2018-08-28 16:27:46 178

原创 Vue记录 this.$emit 子组件向父组件传递事件以及携带数据

在使用Vue 的组件的时候常常需要:    子组件  向父组件  传递   事件  以及  携带数据data,父组件 监听到来自子组件的事件 以及传递过来的 数据,   使用这些数据做相应的事情 ........一个Demo 就一目了然, 这里做个记录:&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta ch...

2018-04-20 00:36:11 14948 1

原创 Vue的v-model学习记录

&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;render&lt;/title&gt; &lt;!-- 开发环境版本,包含了用帮助的命令行警告 --&gt; &lt

2018-04-19 01:31:32 295

原创 Java的项目(资源或者配置)文件的加载总结

本文测试了Java项目的文件路径加载,和文件的一些位置关系

2017-07-27 14:45:00 652

原创 常用Linux的if判断语句

常用Linux 的 if 判断语句 参数总结:   最常见的格式:      if [ -x   xxxx  ]        x 代表参数[ -a FILE ]  如果 FILE 存在则为真。  [ -b FILE ]  如果 FILE 存在且是一个块特殊文件则为真。  [ -c FILE ]  如果 FILE 存在且是一个字特殊文件则为真。  [ -d FILE ] 

2017-07-19 13:42:57 1042

原创 java.lang.Process.exitValue()和waitFor()和destroy()

currProcess=currRuntime.exec(cmd);这个返回一个process对象destroy,exitValue,waitFor有三个方法看官方文档waitForpublic abstract int waitFor()                     throws

2017-03-30 14:40:26 13543

原创 64位Windows系统注册表的 32 位注册表项和64 位注册表项

64 位版本 Windows 中的注册表分为 32 位注册表项和 64 位注册表项。许多 32 位注册表项与其相应的 64 位注册表项同名,反之亦然。64 位版本 Windows 包含的默认 64 位版本注册表编辑器 (Regedit.exe) 可显示 64 位和 32 位的注册表项。WOW64 注册表重定向器为 32 位程序提供了对应于 32 位程序注册表项的不同注册表项。在 64 位版

2017-03-30 01:01:57 6477

原创 Java集合框架的总结

一、下面再给出java容器类库完备的图,包括抽象类和遗留构件:三. java容器类库的用途是“保存对象”,并将其划分为两个不同的概念:1、Collection一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能有重复元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。

2017-02-19 12:26:21 445

原创 spring 每个jar的作用

在使用maven时会用到  spring  配置依赖,总结一下spring  所用到 的jar包 ;  spring.jar 是包含有完整发布模块的单个jar 包。spring-src.zip就是所有的源代码压缩包。除了spring.jar 文件,Spring 还包括有其它21 个独立的jar 包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar

2016-12-25 12:25:50 494

原创 Struts2框架的XML配置详解

1.1.1.1 配置Struts2的前端控制器(核心过滤器)在工程的web.xml中配置:  配置Struts2的核心过滤器-->  xml version="1.0" encoding="UTF-8"?>web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://ww

2016-11-26 22:05:34 657

原创 Hibernate核心接口和类

Hibernate的核心类和 接口一共有6个,Session、SessionFactory、Transaction、Query、Criteria和Configuration.

2016-11-25 22:59:34 458

原创 Hibernate-Criteria接口

一、Criteria接口的用途:设计上可以灵活的根据criteria的特点进行查询条件的组装。CriteriaSpecification 接口是 Criteria 接口和 DetachedCriteria 接口的父接口。DetachedCriteria 接口和 Criteria 接口的主要区别在于:Criteria 是在线的,所以他由Hibernate Sess

2016-11-25 20:03:24 815

翻译 Hibernate中使用Threadlocal创建线程安全的Session

一、问题的提出   我们知道Session是由SessionFactory负责创建的,而SessionFactory的实现是线程安全的,多个并发的线程可以同时访问一 个SessionFactory并从中获取Session实例,而Session不是线程安全的。Session中包含了数 据库操作相关的状态信息,那么说如果多个线程同时使用一个Session实例进行CRUD,就很有可能导致数据

2016-11-25 15:38:18 2765

翻译 关于 Web开发中的请求重定向和内部转发的区别 (声明:文章有 截取其他博客的内容)

一、调用方式我们知道,在servlet中调用转发、重定向的语句如下:request.getRequestDispatcher("new.jsp").forward(request, response);   //转发到new.jspresponse.sendRedirect("new.jsp");   //重定向到new.jsp在jsp页面中你也会看到通过下面的方式

2016-11-01 00:45:11 735

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除