spring的bean初始化策略

如果当前没有使用 GraalVM 镜像环境,AbstractAutowireCapableBeanFactory 中指定 instantiationStrategy 的值为 CglibSubclassingInstantiationStrategy,即默认创建对象使用的是 cglib。

java 复制代码
/**
	 * Create a new AbstractAutowireCapableBeanFactory.
	 */
	public AbstractAutowireCapableBeanFactory() {
		super();
		ignoreDependencyInterface(BeanNameAware.class);
		ignoreDependencyInterface(BeanFactoryAware.class);
		ignoreDependencyInterface(BeanClassLoaderAware.class);
		if (NativeDetector.inNativeImage()) {
			this.instantiationStrategy = new SimpleInstantiationStrategy();
		}
		else {
			this.instantiationStrategy = new CglibSubclassingInstantiationStrategy();
		}
	}

GraalVM 原生镜像通过启动时设置参数指定 org.graalvm.nativeimage.imagecode,不指定默认为 false。

java 复制代码
public abstract class NativeDetector {

	// See https://github.com/oracle/graal/blob/master/sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/ImageInfo.java
	private static final boolean imageCode = (System.getProperty("org.graalvm.nativeimage.imagecode") != null);

	/**
	 * Returns {@code true} if invoked in the context of image building or during image runtime, else {@code false}.
	 */
	public static boolean inNativeImage() {
		return imageCode;
	}
}
相关推荐
qq_2695067510 小时前
第28课-AJAX与前端框架
java
IT_陈寒10 小时前
Redis主从切换竟让业务卡了3秒?这个坑我替你踩了
前端·人工智能·后端
程序员清风10 小时前
Java 后端如何接入大语言模型
java·spring boot·架构·aigc
xieliyu.10 小时前
JVM 垃圾回收机制详解:从标记过程、回收算法到垃圾收集器
java·jvm·笔记·java-ee
JavacKaka10 小时前
Redis大Key导致生产事故复盘博客-2026-09-18
java
逃逸线LOF10 小时前
Spring Boot4 整合 Shiro3 & Thymeleaf
spring boot·spring
右耳朵猫AI11 小时前
Java周刊2026W38 | Micronaut 修补三漏洞、JDK 27 提速 54%、Jetty 修复抖动测试
java·后端·spring
事已至此先睡覺吧11 小时前
第二篇:Java 基础语法:变量、数据类型、运算符与类型转换
java
Wang's Blog11 小时前
Java 项目实战: 外卖平台-后台退出功能与首页iframe架构
java·服务器·redis
Wang's Blog11 小时前
Java 项目实战: 外卖平台-软件开发流程与项目整体介绍
java·服务器·redis