自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在SpringBoot中使用cglib动态代理的一个问题

首先我们知道,Spring的动态代理使用的是jdk动态代理和cglib动态代理。其中Jdk动态代理基于方法的实现,所以被代理的类必须实现一个接口,才能使用jdk动态代理;cglib动态代理基于继承,代理方法通过继承被代理的类,然后重写目标方法,完成代理。private方法不能被代理final方法不能被代理重点:由于java是单继承多实现的,如果一个类已经继承了其他类,就不能再被代理类继承,按理说,这个类的所有方法都不能被代理,但事实并非如此。

2023-04-17 10:14:36 482

原创 SpringBoot中的异步任务

通过源码可以看到,Spring默认的线程池核心线程数为8,最大线程数为Integer.MAX_VALUE,阻塞队列为Integer.MAX_VALUE,可能造成无限的非核心线程的创建,这是一种资源浪费。编写两个异步任务,方法上使用@Async注解,同时启动类或异步任务类上开启@EnableAsync注解。使用@Async注解开启的异步任务,是Spring自定义线程池实现的。根据Spring自动装配原理,修改Spring默认提供的线程池参数。

2023-03-17 14:41:58 237

原创 Arrays.asList()方法的注意事项

【代码】Arrays.asList()方法的注意事项。

2023-02-21 16:52:11 107

原创 SpringBean的生命周期

创建BeanDefinition对象,加载到BeanFactory中,Spring的IOC容器实际上是DefaultListableBeanFactory,这个类用Map,ArrayList等集合保存这些BeanDefinition对象,比如使用set集合保存单例Bean,使用Map做Bean的Calss对象和类名的映射关系。BeanFactoryPostProcessor是BeanFactory的后处理器,可以对BeanFactory进行扩展,比如,在创建Bean实例之前,动态修改Bean定义的属性值。

2022-08-22 01:31:42 161

原创 String类的三种常用拼接方法

使用“+” 连接符操作String类实际上是将String类转为StringBuilder类,调用StringBuilder类的append方法完成字符串拼接操作。concat方法实际上是重新申请一个当前字符串长度+拼接字符串长度的字符数组,然后拼接好的字符串复制到新数组中,然后调用String类的构造方法创建一个新的数组。我们都知道,String类是一个final的,不允许字符串的修改,更不允许字符串的“拼接”创建一个count+len长度的数组,然后将原数组内容和拼接的内容拷贝到新数组中。...

2022-08-09 20:00:08 11873 1

空空如也

空空如也

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

TA关注的人

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