在Spring中,对象无需自己负责查找和创建与它关联的其他对象,容器会负责把需要相互协作的对象引用赋予各个对象。
创建应用对象之间协作关系的行为成为装配。
Spring容器提供两种装配Bean的方式:
一、使用一个或多个XML文件作为配置文件。
在XML文件中声明Bean时,Spring配置文件的根元素是源于Spring Bean命名空间所定义的<beans>元素
<?XML。。。>
<beans>
<bean id=" duke " class=" com.springinaction.springidol.Juggle "/ > //id属性定义了Bean的名字,作为该Bean在Spring容器中的引用
<constructor-arg value="15">--------调用另一个构造器方法,而不是默认的构造器
</beans>
通过构造器注入对象引用
public class PoeticJuggle extends Juggle{
private Poem poem;
public PoeticJuggle (Poem poem){
super();
this.poem=poem;------注入Poem
}
public PoeticJuggle (into beanBag,Poem poem){
super(baenBags);
this.poem=poem;
}
}
class Sonnet39 implements Poem{}
<beans>
<bean id="sonnet29" class="com.springinaction.springidol.Sonnet39 "/>
<bean id=" duke " class=" com.springinaction.springidol.Juggle "/ > //id属性定义了Bean的名字,作为该Bean在Spring容器中的引用
<constructor-arg value="15">--------调用另一个构造器方法,而不是默认的构造器
<constructor-arg ref=" sonnet29"/> ----------通过使用ref属性来将id为sonnet29的Bean引用传递给构造器。
</beans>
Bean的作用域在Spring中配置<bean>元素时,为了让Spring在每次请求时都为Bean产生一个新的实例,只需要Bean的scope属性为:prototype
初始化和销毁bean:
init-method 和destroy-method
二、基于java注解的配置方式