震惊-spring单例不单例了
为什么我的单例bean会多次初始化?
背景代码如下,两个aop切入的类,都各自依赖的第三方提供的bean(必须是未初始化的,如果你没有redisson,你可以任意依赖其他的未初始化的bean)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576@Slf4j@Componentpublic class RecordException extends AbstractPointcutAdvisor { @Resource Redisson redisson; @Override public Pointcut getPointcut() { return new Pointcut() { @Override public ClassFilter g ...
spring的@lazy注解
问题@Lazy能干什么?
123456789@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Lazy { /** * Whether lazy initialization should occur. */ boolean value() default true;}
如何使用可用在类上、方法返回值上、方法上、构造方法上、参数上、以及字段上
类上、方法上、方法返回值上生成的bean懒加载,只有用到他的时候才会加载
12// 生成beanDefinition的时候会扫描注解,调用此方法,判断是否有Lazy注解,把beanDefinition的lazy属性变为true。AnnotationConfigUtils.processCommonD ...
vue的el-ui组件input的clearable和readOnly并存
问题看代码
12345<el-input placeholder="点击选择..." clearable></el-input><el-input placeholder="点击选择..." readonly></el-input>
以上代码只能二选一,如何突破限制我都想要呢?
解决方案12<el-input @hook:mounted="updateClearable" ref="showClearable" placeholder="点击选择图标" clearable></el-input>
12345methods: { updateClearable(){ this.$refs.showClearable.$refs.input.readOnly = true; }}
原理具体可分析一下源码:
123456789computed: ...
踩坑-pc调试安卓chrome浏览器之设备连接
Pc调试Android Chrome的f12开发者工具,这种方式不仅能抓包,还能打断点,和浏览器pc 端 开发者工具一模一样,非常方便
连接步骤
必须翻墙因为他要访问https://chrome-devtools-frontend.appspot.com地址,下载sdk调试的一些js,才能完成调试工作
安卓手机下载chrome浏览器(版本>=32)
pc安装手机驱动(linux或者mac则不用)
开启安卓手机的usb调试小米手机注意了,usb调试有两个选项1:usb调试2:usb调试(安全设置)选择1=usb调试,千万别选错了
打开pc-Chrome浏览器(版本>=32)
用USB线连接Android设备,在chrome地址栏输入 chrome://inspect
在安卓设备员授权pc远程usb调试你的设备
在pcChrome的inspect页面勾选Discover USB devices选项,直至搜索到你的设备注意我用的chrome有个Discover network targets选项一定要把他去掉勾选,调试了半天发现只要勾选他,usb设备就检测不出来, ...
文件传输之断点续传-httpCode206
何为断点续传?如果你下载一个超大的文件到99%,突然没网了,你急不急?断点续传就是为解决这个问题运用而生
断点续传-上传需要在前端手动切割文件,一块一块上传,最后再让后端组合文件。目前主流框架没有实现,需要手写实现
断点续传-下载请求一个文件下载,如果http响应中有一个Accept-Ranges: bytes这就代表服务端支持断点续传,其实nginx,apache等web服务器默认是开始支持断点续传的可以用curl --range 0-100 的命令表示下载0-100 这101字节的内容
1234Ranges: bytes=4000- // 下载从第4000字节开始到文件结束部分Ranges: bytes=0~N // 下载第0-N字节范围的内容Ranges: bytes=M-N // 下载第M-N字节范围的内容Ranges: bytes=-N // 下载最后N字节内容
http请求头中只要携带range:bytes=M-Nrange:bytes=M-range:bytes=-N服务端就会返回http_code码为206(即使返回的是全部 ...
踩坑-charles抓包启用外部代理无法二次请求
背景charles有个非常好用的功能,针对拦截过的请求,可以二次手动发起,对于调试来说非常方便有个外网的资源,需要翻墙,我既想用charles抓包,也想翻墙,但这样会有冲突,因为socks5隧道转发只能设置一个端口怎么办呢,那就只能通过socks5串联的方式进行代理浏览器 -> charles -> 本地socks5 -> 加密并请求服务端。。。
charles外部代理配置抓包的charles端口为8889,翻墙代理的socks5端口为1087我们把设置charles启用外部代理,端口为1087
然后再把本地wifi的socks5端口指定为8889即可(第一张图片)
调试过程我想复现某一个资源请求,发现该资源被前端的service worker缓存了,那么如何从缓存中单独清除这个资源呢?
debug service worker代码,把该资源从缓存中删除通过打断点加上设置断点的条件,然后把缓存变为Null,让其继续走下面代码执行fetch代码,就能通过网络从新请求资源
到了我该使用charles repeat二次请求的功能的时候了,发现直接报错
经尝试 ...
terminus终点站私服考试答案
我开始反思自己的想法,到底什么才算"公益"?
终点站公益服需要签到够40积分,才能有资格考试,考试问题杂七杂八,特此记录下来考试答对90分以上才能有资格注册账号如今注册账号也给限制了,现已暂时关闭注册
a为正确答案,e为错误的答案
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581 ...
远程执行java和shell(backDoor)
远程实时执行java代码和shell脚本。可通过http请求直接在服务器运行
代码
需要部署到服务端,在springMVC框架内,依赖groovy脚本解析器
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687public interface Debug { @Component class Java extends GenericServlet { @Autowired AutowireCapableBeanFactory beanFactory; private final GroovyClassLoader groovyClassLoader = new GroovyClassLoader(); public Stri ...
js不常见对象介绍以及base64图片转为文件
base64转图片的代码base64转图片,之后如何保存为一个文件?用js代码或者在线工具即可搞定js代码如下
12345678910111213141516171819202122232425262728293031323334function dataURLtoBlob(dataurl) { var arr = dataurl.split(','); var mime = arr[0].match(/:(.*?);/)[1]; var bstr = atob(arr[1]);// base64解码 var n = bstr.length; var u8arr = new Uint8Array(n); // 开辟一个无符合n*8个字节的空间,最小操作单位为8位比特bit while (n--) { // base64解码之后,需要将每一位放置uint8array对象中 u8arr[n] = bstr.charCodeAt(n); } return ne ...
区分ip主机地址和网络地址以及广播和网关地址以及子网掩码
internet protocol(ip) 互联网协议IP地址由4字节32位组成,每个ip地址包含网络地址和主机地址两个含义
一个网络可以包含多个主机
早期分类
该ip分类已弃用
类型
可分配网络地址
范围
私有地址
A:超大型网络 2^24≈1600w+
127 个
0.0.0.0-127.255.255.255 全0是个保留字段,0.0.0.0不可使用
10.0.0.0-10.255.255.255
B:中等规模网络 2^16≈6w+
16383个
128.0.0.0-191.255.255.255 128.0.0.0也不可使用
172.16.0.0-172.31.255.255
C:小型网络 2^8≈256
2097151个
192.0.0.0-123.255.255.255 192.0.0.0也不可使用
192.168.0.0-192.168.255.255
D:组播、多点广播
224.0.0.0-239.255.255.255 咱们一般都是点对点称之为为单播,组播就是寻址一组计算机
E:科研保留地址
240.0 ...