bean标签:

    • 名称bean
    • 类型:标签
    • 归属:beans标签
    • 作用:定义spring中的资源,受此标签定义的资源将受到spring控制
    • 格式:
      1. <beans>
      2. <bean />
      3. <beans />
      基本属性:
      1. <bean id="beanId" name="beanName1,beanName2" class="ClassName"></bean>
      id:bean的名称,通过id获取bean
      class:bean的类型
      name:bean的名称,可以通过name获取bean,用于多人配合时给bean起别名

    scope标签:

    • 名称scope
    • 类型:属性
    • 归属:bean标签
    • 作用:定义bean的作用范围
    • 格式

      1. <bean scope="singleton"></bean>
    • 取值:

      • singleton:设定创建出的对象保存在spring容器中,是一个单例的对象
      • prototype:设定创建出的对象保存在spring容器中,是一个非单例对象
      • request、session、application、websocket:设定创建出的对象放置在web容器对应的位置
    • 默认为单例singleton

    ps:单例情况下,是在加载容器时就创建对象(创建applicationContext时)
    非单例情况下,是在获取对象时创建(getBean)

    bean生命周期

    • 名称init-method,destroy-method
    • 类型:属性
    • 归属bean标签
    • 作用:定义bean对象在初始化或销毁时完成的工作
    • 格式

      1. <bean init-mehtod="init" destroy-method="destroy"></bean>
    • 取值:bean对应的具体方法名

    ps:类似于前后置操作
    在每次创建对象时执行,单例执行一次,非单例创建一次执行一次
    非单例不归spring容器管理,spring只负责new出对象

    bean对象创建方式(了解)

    • 名称factory-bean,factory-method
    • 类型:属性
    • 归属:bean标签
    • 作用:定义bean对象创建方式,使用实例工厂的形式创建bean,兼容早期遗留系统的升级工作
    • 格式

      1. <bena factory-bean="factoryBeanID" factory-method="factoryMethodName"></bean>
    • 取值:工厂bean中用于获取对象的实例方法

    • 注意事项:
      • 使用实例工厂创建bean首先需要将实例工厂配置bean,交有spring进行管理
      • factory-bean是实例工厂个的beanId

    配置:class(静态工厂类全类名) factory-method(工厂方法名称)

    1. 静态工厂bean
    2. <bean id="userService4" class="com.example.service.UserServiceFactory" factory-method="getService" />
    3. 实例工厂bean
    4. 先创建实例工厂bean对象
    5. <bean id="factoryBean" class="com.example.service.UserServiceFactory2" />
    6. factory-bean指定实例工厂bean对象 factory-method指定方法
    7. <bean id="userService5" factory-bean="factoryBean" factory-method="getService" />