[SXT][WY]Spring05 Bean的作用域及自动装配

Bean的作用域

 

spring Bean的作用域:
 
scope可以取值: 
 * singleton:每次调用getBean的时候返回相同的实例
 * prototype:每次调用getBean的时候返回不同的实例

 

<bean id="bean1" class="com.bjsxt.spring.Bean1" scope="prototype"/>

 

public class ScopeTest extends TestCase {
 
 private BeanFactory factory;
 
 @Override
 protected void setUp() throws Exception {
  factory = new ClassPathXmlApplicationContext("applicationContext-*.xml"); 
 }

 public void testScope1() {
  Bean1 bean11 = (Bean1)factory.getBean("bean1");
  Bean1 bean12 = (Bean1)factory.getBean("bean1");
  if (bean11 == bean12) {
   System.out.println("bean11==bean12");
  }else {
   System.out.println("bean11!=bean12");
  }
 }
}

 

根据名称自动装配.

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
           default-autowire="byType"    //这里开启了按照名称自动装配
           >
 
 <!--
 <bean id="bean2" class="com.bjsxt.spring.Bean2">
  <property name="bean3" ref="bean3"/>
  <property name="bean4">
   <ref bean="bean4"/>
  </property> 
  <property name="bean5" ref="bean5"/>
 </bean>
  -->
 
 <bean id="bean2" class="com.bjsxt.spring.Bean2"/> //bean2并没有显式地依赖某个类,而是bean2的属性名 如果与配置文件中的<bean>id一致,则bean2被自动装配依赖关系
  
 <bean id="bean5111" class="com.bjsxt.spring.Bean5">
  <property name="age" value="20"/>
 </bean>
</beans>

 

根据类型自动装配

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
           default-autowire="byType"  //启动了按照类型自动装配
           >
 
 <!--
 <bean id="bean2" class="com.bjsxt.spring.Bean2">
  <property name="bean3" ref="bean3"/>
  <property name="bean4">
   <ref bean="bean4"/>
  </property> 
  <property name="bean5" ref="bean5"/>
 </bean>
  -->
 
 <bean id="bean2" class="com.bjsxt.spring.Bean2"/> // bean2中有属性的类型为com.bjsxt.spring.Bean5,则下面的bean5111会被自动装配。属性名和bean名不需要一样
  
 <bean id="bean5111" class="com.bjsxt.spring.Bean5">
  <property name="age" value="20"/>
 </bean>
</beans>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值