Spring-IOC高级特性(懒加载,FactoryBean,扩展处理【后置处理】)简单介绍

本文介绍了Spring-IOC的高级特性,包括懒加载(延迟初始化)以减少启动时资源消耗,如何启用懒加载以及通过XML和注解的方式配置。接着讲解了FactoryBean用于自定义复杂Bean实例化的概念和使用方法。最后讨论了后置处理器BeanPostProcessor,解释了其在Bean初始化前后处理的逻辑,并展示了如何实现自定义的后置处理器。
摘要由CSDN通过智能技术生成

懒(延迟)加载(Lazy-Init)

ApplicationContext 容器的默认行为是在启动服务器时将所有 singleton bean 提前进行实例化。
这样如果项目比较大,Spring管理的类比较多,会造成每次启动项目耗时比较长的问题,这里我们就需要延迟加载特性;
延迟加载:指程序启动时不会默认实例化类,只有在被管理的bean使用的时候才会实例化;

使用场景

  1. 开启延迟加载一定程度提高容器启动和运转性能
  2. 对于不常使用的 Bean 设置延迟加载,这样偶尔使用的时候再加载,不必要从一开始该 Bean 就占用资源。

启用延迟加载

XML方式:

  • 全局配置:
    <beans default-lazy-init="true">
    <!-- no beans will be eagerly pre-instantiated... -->
    </beans>
    
    这样配置后,所有Bean都开启延迟加载特性
  • 指定Bean配置
    <bean id="testBean" calss="com.wjy.LazyBean" lazy-init="true" />
    

注解方式:

  • 全局配置:
    // 指定类为配置类
    @Configuration
    // 指定扫描包
    @ComponentScan({
         "com.wjy"})
    // 引入外部资源文件
    @PropertySource({
         "classpath:jdbc.properties"})
    // 指定全局懒加载实例化Bean
    @Lazy
    public class SpringConfig {
         
    }
    
    在Spring配置类上添加@Lazy注解,即可开启全局懒加载
  • 指定类配置:
    @Component("transactionManager")
    @Lazy
    public class TransactionManager 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值