您的位置:首页 > 编程语言 > Java开发

深入理解Spring4框架(四)——依赖

2016-07-24 21:31 477 查看

     一个典型的企业应用不止包含一个对象,即使是一个简单的应用,也是由几个对象合作来完成用户需要使用的功能。本节将介绍定义的Bean是如何在真实系统中配合来完成既定功能的。

   依赖注入就是在对象构建完成后,为其定义依赖的过程。容器会在创建Bean的时候将这些依赖注入进去。这个过程跟我们通常编码不同,平常我们都需要在代码中去new一个对象,而这里把这个操作交给容器了,由Bean自己来控制依赖的实例化,与通常的方法是相反的,称之为控制反转(IoC)。

    使用依赖注入的话,代码会变得更加清晰,也将对象和依赖进行了解耦。

1 基于构造器的依赖注入

    基于构造器的依赖注入是由容器来调用一个带有多个参数的构造器,和调用静态工厂方法来构建Bean类似。下面的例子表示一个仅通过构造器进行依赖注入的类。

<beans>
    <bean id="foo" class="x.y.Foo">
        <constructor-arg ref="bar"/>
        <constructor-arg ref="baz"/>
    </bean>
    <bean id="bar" class="x.y.Bar"/>
    <bean id="baz" class="x.y.Baz"/>
</beans>

<bean id="exampleBean" class="examples.ExampleBean">
    <constructor-arg type="int" value="7500000"/>
    <constructor-arg type="java.lang.String" value="42"/>
</bean>[/code]
<bean id="exampleBean" class="examples.ExampleBean">
    <constructor-arg name="years" value="7500000"/>
    <constructor-arg name="ultimateAnswer" value="42"/>
</bean>[/code]
[b]<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/>
<bean name="not.lazy" class="com.foo.AnotherBean"/>[/code]
public abstract class CommandManager {
    public Object process(Object commandState) {
        Command command = createCommand();
        command.setState(commandState);
        return command.execute();
    }
    protected abstract Command createCommand();
}[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: