Spring懒加载Bean机制

一、概述

默认情况下Spring容器启动时就会创建被它管理的Bean ,但是有的时候被Spring管理的Bean并不需要再容器启动的时候被创建,而是当对象第一次被访问的时候进行创建 ,这种场景就可以使用懒加载实现。

也就是说:容器启动的时候不会创建bean,只有当第一次从容器中获取bean的时候才会被创建

二、代码实现

全局延迟初始化:

java 复制代码
spring.main.lazy-initialization=true
​
单独不开启
@Lazy(value = false)

注解:@Lazy

XML:

XML 复制代码
<bean id="lazy" class="cn.xxx.service.xxService" lazy-init="true"/>

测试:

java 复制代码
// 容器初始化
ApplicationContext context  = ClassPathXmlApplicationContext("xxxService.xml");
// 判断在没在单例池当中  或者用构造方法去验证
System.out.println(context.getBeanFactory().containsSingleton("xxxService"));// true:在,已经创建了
// 获取bean
xxxService service = context.getBean(xxxService.class);
相关推荐
それども13 分钟前
Gradle 构建疑难杂症 Could not find netty-transport-native-epoll-linux-aarch_64.ja
java·服务器·gradle·maven
正儿八经的少年29 分钟前
application.yml 系列配置文件作用与区别
java·配置文件
鱼很腾apoc1 小时前
【学习篇】第20期 超详解 C++ 多态:从语法规则到底层原理
java·c语言·开发语言·c++·学习·算法·青少年编程
cheems95271 小时前
[Spring MVC] 统一功能与拦截器实践总结
java·spring·mvc
Full Stack Developme2 小时前
Spring Boot 事务管理完整教程
java·数据库·spring boot
城管不管3 小时前
前后端远程协作
java
青云计划3 小时前
Feed流
java·后端·spring
☞遠航☜3 小时前
搭建基础的springcloud alibaba项目练习
后端·spring·spring cloud
java1234_小锋3 小时前
String、StringBuilder、StringBuffer的区别?
java·开发语言
星原望野3 小时前
JAVA集合:List、Set和Map
java·开发语言·list·set·map·集合