window.cnblogsConfig = {
blogUser: 'MoYu',
blogAvatar: 'https://gitee.com/MoYu-zc/picgo/raw/master/img/20210213094450.jpg',
blogStartDate: '2020-02-09',
webpageTitleOnblur: '(o゚v゚)ノ Hi,Back',
webpageTitleOnblurTimeOut: 500,
webpageTitleFocus: '(*´∇`*) 欢迎回来!',
webpageTitleFocusTimeOut: 1000,
webpageIcon: "https://gitee.com/MoYu-zc/picgo/raw/master/img/20210213094450.jpg",
enable: true, // 是否开启日/夜间模式切换按钮
auto: { // 自动切换相关配置
enable: false, // 开启自动切换
dayHour: 7, // 日间模式开始时间,整数型,24小时制
nightHour: 20 // 夜间模式开始时间,整数型,24小时制
}
switchDayNight: {
enable: true,
auto: {
enable: true
}
},
progressBar: {
id : 'top-progress-bar', // 请勿修改该值
color : '#77b6ff',
height : '2px',
duration: 0.2,
},
loading: {
rebound: {
tension: 16,
friction: 5,
},
spinner: {
id: 'spinner',
radius: 90,
sides: 3,
depth: 4,
colors: {
background: '#f0f0f0',
stroke: '#272633',
base: null,
child: '#272633',
},
alwaysForward: true, // When false the spring will reverse normally.
restAt: 0.5, // A number from 0.1 to 0.9 || null for full rotation
renderBase: false,
}
},
homeTopAnimationRendered: true,
homeTopAnimation: {
radius: 15,
density: 0.2,
color: 'rgba(255,255,255, .2)', // 颜色设置,“random” 为随机颜色
clearOffset: 0.3,
},
essayTopAnimationRendered: true,
essayTopAnimation: {
triW : 14,
triH : 20,
neighbours : ["side", "top", "bottom"],
speedTrailAppear : .1,
speedTrailDisappear : .1,
speedTriOpen : 1,
trailMaxLength : 30,
trailIntervalCreation : 100,
delayBeforeDisappear : 2,
colorsRandom: false, // v1.2.4 是否开启随机颜色
colors: [
'#96EDA6', '#5BC6A9',
'#38668C', '#374D84',
'#BED5CB', '#62ADC6',
'#8EE5DE', '#304E7B'
]
},
homeTopImg: [
"https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/home_top_bg.webp",
"https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/home_top_bg.webp"
],
homeBannerTextType: "one",
essayTopImg: [
"https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/nothome_top_bg.webp",
"https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/nothome_top_bg.webp",
"https://gitee.com/MoYu-zc/picgo/raw/master/img/20210208190902.jpg",
"https://gitee.com/MoYu-zc/picgo/raw/master/img/20210208190954.jpg",
],
codeMaxHeight: true,
codeLineNumber: true,
essayCode: {
fontFamily: "'Ubuntu Mono',monospace", // 代码框字体
fontSize: "14px" // 代码框字体大小
},
}
摘要:
CGLib浅析 什么是CGLib CGLIB实现动态代理,并不要求被代理类必须实现接口,底层采用asm字节码生成框架生成代理类字节码(该代理类继承了被代理类)。 所以被代理类一定不能定义为final class并且对于final 方法不能被代理。 实现需要 //MethodInterceptor接口
阅读全文
posted @ 2021-09-11 20:37
MoYu-zc
阅读(264)
推荐(0)
编辑
摘要:
代理 为其他对象提供一种代理以控制这个对象的访问,在某些情况下一个对象不能直接访问那个对象时,代理就起到了客户端和被代理对象 (委托类) 中介作用。 按照代理的创建时期,代理类可以分为两种: 静态:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了
阅读全文
posted @ 2021-09-11 20:36
MoYu-zc
阅读(91)
推荐(0)
编辑