Package org.miaixz.bus.core.instance
Class InstanceFactory
java.lang.Object
org.miaixz.bus.core.instance.InstanceFactory
- All Implemented Interfaces:
Instance
实例化工厂类
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Method Summary
Modifier and TypeMethodDescriptionstatic InstanceFactory获取单例对象<T> T多例对象,每次都是全新的创建static <T> Tsingletion(Class<T> clazz) 静态方法单例static <T> Tsingletion(Class<T> clazz, String groupName) 静态方法单例<T> T获取对象的单例对象 1.<T> T获取对象的单例对象 1.<T> TthreadLocal(Class<T> clazz) 获取每个线程内唯一的实例化对象 注意:可能会内存泄漏的场景 (1) 只要这个线程对象被gc回收,就不会出现内存泄露,但在threadLocal设为null和线程结束这段时间不会被回收的,就发生了我们认为的内存泄露 最要命的是线程对象不被回收的情况,这就发生了真正意义上的内存泄露 比如使用线程池的时候,线程结束是不会销毁的,会再次使用的 就可能出现内存泄露 参考资料:https://www.cnblogs.com/onlywujun/p/3524675.html<T> TthreadSafe(Class<T> clazz) 线程安全对象 1.
-
Method Details
-
getInstance
获取单例对象- Returns:
- 实例化对象
-
singletion
静态方法单例- Type Parameters:
T- 泛型- Parameters:
clazz- 类信息- Returns:
- 结果
-
singletion
静态方法单例- Type Parameters:
T- 泛型- Parameters:
clazz- 类信息groupName- 分组名称- Returns:
- 结果
-
singleton
Description copied from interface:Instance获取对象的单例对象 1. 需要保证对象的线程安全性 2. 只有在同一个分组返回的对象才会是单例,否则返回 newInstance() -
singleton
Description copied from interface:Instance获取对象的单例对象 1. 需要保证对象的线程安全性 -
threadLocal
Description copied from interface:Instance获取每个线程内唯一的实例化对象 注意:可能会内存泄漏的场景 (1) 只要这个线程对象被gc回收,就不会出现内存泄露,但在threadLocal设为null和线程结束这段时间不会被回收的,就发生了我们认为的内存泄露 最要命的是线程对象不被回收的情况,这就发生了真正意义上的内存泄露 比如使用线程池的时候,线程结束是不会销毁的,会再次使用的 就可能出现内存泄露 参考资料:https://www.cnblogs.com/onlywujun/p/3524675.html- Specified by:
threadLocalin interfaceInstance- Type Parameters:
T- 泛型- Parameters:
clazz- class 类型- Returns:
- 实例化对象
- See Also:
-
multiple
Description copied from interface:Instance多例对象,每次都是全新的创建 -
threadSafe
Description copied from interface:Instance线程安全对象 1. 判断当前类是否拥有ThreadSafe注解, 如果有,则直接创建单例对象 如果不是,则创建多例对象- Specified by:
threadSafein interfaceInstance- Type Parameters:
T- 泛型- Parameters:
clazz- class 类型- Returns:
- 实例化对象
-