n>子元素。每个<bean>元素定义了一个bean如何被装配到Spring容器中。
下面就是这个例子的XML配置
<beans>
<bean id="foo"
class="com.springinaction.Foo"/>
<bean id="bar"
class="com.sprionginaction.Bar"/>
</beans>
这是个简单的BEAN装配XML文件在Spring配置了两个BEAN。
添加一个BEAN:
在Spring中对一个BEAN的最基本的配置包括Bean的ID和它的全称类名。
在上面的学生例子中,我们往文件中添加CourseDao和StudentDao的实现类的定义
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Beans PUBLIC "-//SPRING//DTD BEAN//EN"http://www.springframework.org/dtd/spring-beans.dtd”>
<beans>
<bean id="courseDao" class="com.springinaction.service.training.CourseDaoImpl"/>
<bean id="studentDao" class="com.springinaction.service.training.StudentDaoImpl"/>
</beans>
原型与单实例:
默认情况下,Spring中的所有bean都是单例(singletons),这意味着Spring维护bean的唯一实例,所有的依赖对象引用同一实例。对
bean工厂的getBean()方法的每一次调用都返回同一个实例
<bean id="foo" class="com.springinaction.Foo" singletons="false"/>
在这里有个属性singletons,把它设为false就成了原型,如为TRUE,就是单例。
请大家注意每次用bean的名字调用getBean()方法都会获得一个这个BEAN的新实例,。如果BEAN使用的是有限资源,如数据库和网络连接的话这样使用就不好了。所有尽量不要把singletons设为false。除非确实需要。
通过Set方法注入依赖
public void setMaxStudents(int maxStudents){
this.maxStudents=maxStudents;
}
public int getMaxStudents(){
return maxStudents;
}
Spring注入(4)
时间:2011-01-27
Bean配置
<bean id="foo"
class="com.springinactiong.Foo">
<property name="name">
<value>Foo MyFoo</value>
</property>
</bean>
假如为了限制每门课程的注册学生人数最多30人,
<bean id="courseService">
<property name="maxStudents">
<value>30< /value>
</property>
</bean>
引用其他 bean 我们可以使用 <property>元素来设置指向其他Bean的属性。
<property>的子元素<ref>可以实现:
<bean id="foo"
class="com.springinactiong.Foo">
<property name="bar">
<ref bean="bar">
</property>
</bean>
<bean id="bar"
class="com.springinactiong.Bar"/>
<bean id="courseService"
class="com.springinaction.service.training.CourseDaoImpl"/>
<property name="studentService">
<ref bean="studentService">
</property>
</bean>
<bean id="studentService"
|