sprin-Ioc 配置

bean属性

name属性

<bean id="userService" name="userService2, userService3" class="com.impl.UserServiceImpl"/>

使用逗号(,)隔开,再应用程序中

	UserService userService = (UserService) applicationContext.getBean("userService2");

通过getBean([name]),来获取对象。如果没有name,getBean则通过ID来获取Bean。

scope属性

<bean id="userService-t" scope="singleton" class="com.impl.UserServiceImpl"/>
<bean id="userService-t" scope="prototype" class="com.impl.UserServiceImpl"/>

用于控制创建的对象是不是单例
单例模式下对象的创建是在构造spring容器的时候创建(先创建,用的时候直接给你)
Prototype模式下对象的创建实在获取的时候(用的时候再给你创建)

声明周期

    <bean id="userService-t" init-method="init" destroy-method="destroy" class="com.impl.UserServiceImpl"/>

init-method、destroy-method取值都是bean对应类中的方法名,用于控制bean再容器内的声明周期;

  • 注意事项:

    • 当scope=“singleton”时,spring容器中有且仅有一个对象,init方法在创建容器时仅执行一次

    • 当scope=“prototype”时,spring容器要创建同一类型的多个对象,init方法在每个对象创建时均执行一次

    • 当scope=“singleton”时,关闭容器会导致bean实例的销毁,调用destroy方法一次

    • 当scope=“prototype”时,对象的销毁由垃圾回收机制gc()控制,destroy方法将不会被执行

bean对象创建方式

(1)factory-bean

  • 名称:factory-bean

  • 类型:属性

  • 归属:bean标签

  • 作用:定义bean对象创建方式,使用静态工厂的形式创建bean,兼容早期遗留系统的升级工作

  • 格式:

    <bean class="FactoryClassName" factory-method="factoryMethodName"></bean>
    
  • 取值:工厂bean中用于获取对象的静态方法名

  • 注意事项:

    • class属性必须配置成静态工厂的类名

(2)factory-bean,factory-method

  • 名称:factory-bean,factory-method

  • 类型:属性

  • 归属:bean标签

  • 作用:定义bean对象创建方式,使用实例工厂的形式创建bean,兼容早期遗留系统的升级工作

  • 格式:

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

  • 注意事项:

    • 使用实例工厂创建bean首先需要将实例工厂配置bean,交由spring进行管理

    • factory-bean是实例工厂的beanId

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值