欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring里的BeanFactory和ApplicationContext的区别,bean元素的进阶,bean的生命周期

程序员文章站 2022-05-23 10:19:40
...

BeanFactory和ApplicationContext的区别:

  • BeanFactory接口:1.0

  •   Spring原始的接口,针对原始接口的实现类功能比较单一
    
  •   BeanFactory接口实现类的容器,特点是每次在获得对象时才会创建对象
    
  • ApplicationContext接口:2.0

  • 每次容器启动时就会创建容器中配置的对象     
    
  • 提供了更多的功能  
    
  • 典型的实现类:ClassPathXmlApplicationContext
    
  • 在web开发中使用ApplicationContext
    
  • 在资源匮乏的环境可以使用BeanFactory,比如:手机应用开发
    
  • bean元素,使用该元素来描述spring容器管理的对象
    -|name属性:给被管理的对象起个名字,获得对象的时候根据该名获得对象。可以重复,可以使用特殊字符
    -|class属性:被管理对象的完整类名
    -|id属性:与name属性一模一样。名称不可重复,不能使用特殊字符

    结论:尽量name属性:id是老古董属性

    bean元素进阶:
    scope属性:
    -|singleton(默认值):单例对象,被标识为单例的对象在spring容器中只会存在一个实例
    -|prototype:多例原型,被标识为多例对象,每次在获得对象时才会创建,每次创建的都是新的对象
    -|request:web环境下,对象与request生命周期一致,了解
    -|session:web环境下,对象与session声明周期一致,了解

     生命周期属性:
     配置一个方法作为声明周期初始化方法,spring会在对象创建之后立即调用,init-method
     配置一个方法作为声明周期的销毁方法,spring容器在关闭并销毁容器中所有对象之前调用,destory-merhod