MAT 是基于 Eclipse 的内存分析工具,MAT(Memory Analyer Tool),它是一个快速、功能丰富的 Java Heap 的分析工具,它可以帮助我们查找内存泄漏和排查问题,而且还有丰富的报表统计等等。我们可以通过插件的形式运行还可以单独下载。
https://mp.weixin.qq.com/s?__biz=MzUyODQ3OTYyNQ==∣=2247483848&idx=1&sn=e2813e2ad5118483628925f7fbec464d&chksm=fa6ee52ecd196c38e8ba7fe587021f63a1fcc74c68b22d9efec8a32cb4f2a8b2e93b3af22041&token=746151531⟨=zh_CN#rd
作为开发者的你,平时肯定会有很多自己的笔记,记录着许多工作问题、学习记录等等。近年来有很多支持在线编辑的平台,例如 wolai、语雀等等,它们或多或少的都支持在线的 markdown 的编辑,也支持导入导出等丰富功能。但是对笔者来说,这些平台虽然功能繁多,但因个人习惯不同,笔者还是习惯了 Typora 的简约的风格,也便于持久化存放、不会因为网络等问题访问不了笔记等原因。在实际使用的过程中,会遇到在笔记中图片上传的问题,在发布到其他平台的时候由于都是本地图片,还需要上传一次,这个时候图床就派上用场了。
它一个用于快速上传图片并获取图片 URL 链接的工具,PicGo 本体支持如下图床:七牛图床、腾讯云、又拍云、GitHub、SM.MS 、阿里云 OSS 、Imgur 等。可以去这里下载:https://github.com/Molunerfinn/PicGo
应用截图
可以直接在控制台搜索 oss 找到相关服务,也获取去:https://www.aliyun.com/product/oss 开通。
可以直接拖拽上传,或者使用剪贴板的图片进行测试。
oss 可以按量收费,也可以购买套餐包,现在填写问卷调研还有活动哦。如果你在开通 oss 没有引导的话,可能是活动下线了。- -!
如果 Typora 不接入 PicGo,每次截图还需要手动进行地址的拷贝,简直不要太麻烦。但是幸运的是 Typora 支持对插入图片的服务设定,只需要如下设置你的上传服务,即可满足在插入图片的时候,自动上传图片并转换地址。
SqlSession 作为 MyBatis 提供的面向开发者的核心顶层 API,其表示和数据库交互时的会话对象,是 MyBatis 执行持久化操作的关键对象,它的底层封装了 JDBC 连接,用于完成数据库的增删改查功能,本文将对 SqlSession 的创建过程进行剖析。
https://blog.csdn.net/weixin_50545075/article/details/126876340
动态代理(dynamic proxy)
利用 Java 的反射技术(Java Reflection),在运行时创建一个实现某些给定接口的新类(也称“动态代理类”)及其实例(对象),代理的是接口(Interfaces),不是类(Class),也不是抽象类。在运行时才知道具体的实现,spring aop 就是此原理。
public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
throws IllegalArgumentException
newProxyInstance,方法有三个参数:
loader: 用哪个类加载器去加载代理对象
interfaces:动态代理类需要实现的接口
h:动态代理方法在执行时,会调用 h 里面的 invoke 方法去执行
定义一个接口:
package com.xhx.java;
/**
package com.xhx.java;
/**
package com.xhx.java;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
/**
proxy:就是代理对象,newProxyInstance 方法的返回对象
method:调用的方法
args: 方法中的参数
package com.xhx.java;
import java.lang.reflect.Proxy;
/**
可以打印一下:
System.out.println(vehical.getClass());
更新步骤
UPDATE table_name
SET new_col = [默认值] WHERE TRUE 复制代码
这样的话整个 DDL 过程的就是全程锁表的。
更新步骤
ALTER TABLE 加字段会加锁。只是 Mysql5.6 版本之后新增了 ONLINE DDL 的功能,可以使该表不能使用的时间大大缩短。
ALTER TABLE 加字段的时候。如果该表的数据量非常大。不要设置 default 值。
比如,当前有 2000 万以上数据量的表。如果加字段加了 default 值。Mysql 会执行在执行 Online DDL 之后,对整个表的数据进行更新默认值的操作,即
这样就相当于是更新了 2000w+的数据,而且是在同一个事务里。也就是说这个事务会把整个表都锁住,直到所有的数据记录都更新完默认值以后,才会提交。
这个时间非常长,而且由于会锁全表的记录,所以该表不可用的时间会非常长。
笔者实验过 16 核,32G,Mysql 默认配置。500w 的数据量加一个字段。
日常在使用 Dubbo 的情况下,我们通常有许多功能,例如:限制请求的白名单、统一日志处理、Trace 传递、统一异常处理等等,这些功能我们可以通过 Dubbo 的调用拦截扩展来实现,它其实也是 DubboSPI 的扩展实现,下文概述如何使用这种机制。
服务提供方和服务消费方调用过程拦截,Dubbo 本身的大多功能均基于此扩展点实现,每次远程方法执行,该拦截都会被执行,请注意对性能的影响。详见:https://dubbo.apache.org/zh/docs3-v2/java-sdk/reference-manual/spi/description/filter/
1 | <!-- 消费方调用过程拦截 --> |
在 dubbo 源码中,META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter 配置了默认的过滤器:
1 | cache=org.apache.dubbo.cache.filter.CacheFilter |
有一些过滤器使用了@Activate 注解,所以默认会生效。
有些过滤器会在 consumer 端生效,有些是在 provider 生效,有些是两端都生效,有些还需要其他的一些条件才生效。
这些过滤器统称为 default。
1 | @Activate(group = {Constants.PROVIDER}) // 服务端生效 |
META-INF/dubbo/org.apache.dubbo.rpc.Filter 文件中内容如下:
1 | customFilter01=filter.CustomFilter01 |
有一些默认过滤器使用了@Activate 注解,所以默认会生效。
可以。在 xml 中配置即可。
以配置文件为准。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true