JAVA_Spring管理Bean对象

假设如下对象为一个池对象

Spring 管理bean对象,会为bean赋予什么特性?这些特性有什么好处?

1)延迟加载(按需加载,懒加载)特性-暂缓对象的创建,何时需要何时创建?

  • a)优点:可以优化资源的使用。
  • b)缺点:用时在创建可能会导致响应速度降低。
  • c)场景:资源有限,大对象,稀少用能懒加载就懒加载。
  • d)实现:在需要懒加的对象类型上使用@Lazy注解进行描述

2)作用域(Spring框架为对象提供的作用范围,对象的生命周期只能在指定范围有效)

  • a)优点:让对象在有效范围发挥作用,尽量控制对象的创建和销毁以保证对象的高效,低耗的运行。
  • b)缺点:框架底层设计难度会加大,应用不熟练会导致作用域冲突。
  • c)场景:不同业务,作用域的设计也不同?(例如 对象在整个项目中应用非常频繁可以考虑单例作用域。)
  • d)实现:在需要设定作用域的类上使用@Scope注解进行描述。
d.1)@Scope(“singleton”) 单例作用域,此作用域的对象在这个内存只有一份,通过
  • 共享设计(bean池),实现对象的可重用性。此对象何时创建由懒加载(Lazy)特性
    
  • 设计决定,是否可以被销毁由spring框架决定(一般是在容器销毁时销毁)。适合
    
  • 频度应用比较高的对象。
    
d.2)@Scope(“prototype”) 多例作用域,此作用域的对象在需要时创建(与懒加载特性无关),
  • 每次从容器获取都是一个新的对象,且这些对象spring框架不负责销毁。适合应用频度比
    
  • 较低的对象。 最后GC销毁
    

3)生命周期方法?(每个对象都有生命周期,但不见得每个对象都会设置生命周期方法)

  • a)如何理解生命周期方法?生命周期方法是在对象生命周期过程中要执行的一些方法。
  • b)设计生命周期方法的目的?对象生命周期的不同阶段执行不同业务(例如servlet 中init,service,destory)
  • c)Spring如何设计Bean对象生命周期方法?spring框架中使用相关注解对象对生命周期方法进行描述。

生命周期:request ,session

生命周期方法:线程(新建,就绪,运行,阻塞,死亡) , servlet(init,service,destory)

在这里插入图片描述

Spring框架管理Bean对象有什么优势吗?(面试)

Spring框架可以为由它管理的对象(Bean)提供懒加载策略(对象暂时用不到,则无需加载和实例化),作用域(例如singleton-频繁用时可以考虑内存中只有一份,prototype-使用次数少时可以用时创建,不用时销毁),生命周期方法(更好实现对象的初始化和资源销毁),以实现对象对系统资源的有效使用。同时Spring框架还可以基于用户设计管理对象与对象的依赖关系,以降低对象与对象之间的直接耦合,提高程序的可维护性和可扩展性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值