快速 识别字节流是否是程序能够处理的,能处理才进行后面的 耗时 业务操作,如果不能处理,尽快执行失败,断开连接等操作。
零拷贝在 Java 中的具体 API
发表于
让零拷贝的概念和实际的 API FileChannel#transferTo/From 对应上
Configuration 和 Bean 注解
发表于
主要关注一点,@Configruation 注解中的 proxyBeanMethods 属性默认为 true,也就是说在此 Config 类中调用被 @Bean 注解的方法,每次返回的都是同一个 bean 实例。
@Component 则没有这种特性。
详情可以参考 spring-configuration-bean-annotation-test 中的测试代码,自己运行下。
SpringBoot 的 AOP 中 JDK Proxy 和 CGLib
发表于
以下内容搭配 SpringAopDebug 食用更佳
基础
Spring AOP 的底层就是通过使用 JDK 或者 CGLib 动态代理来实现为目标 Bean 织入横切逻辑的。
JDK 的动态代理,允许开发者在运行期创建接口的代理实例,限制也是只能为接口创建代理实例。
CGLib 采用字节码技术,可以为一个类创建子类,在子类中采用方法拦截所有父类的调用来织入横切逻辑。
- Spring 默认为有接口实现类用 JDK 代理,无接口实现的用 CGLib 代理
- SpringBoot 2.x 默认为全部使用 CGLib 代理
git "Filename too long"
发表于
在 clone Spring 的代码的时候出现的问题,Filename too long 解决方法如下:
1 | git config --system core.longpaths true |