好的。我对 Spring 核心感到沮丧。首先让我举一个例子。您有三个类:Main、Person 和 Address。Main 是包含主要方法的类(可以说是驱动程序)。让我们假设每个人都有一个地址,或者更确切地说,需要一个地址才能发挥作用。它是一种依赖。我知道我们可以使用 Spring 通过构造函数或设置器将这些 bean “连接”在一起。假设我们是通过构造函数完成的。
<bean id="address" class="vail.Address" />
<bean id="person" class="vail.Person">
<constructor-arg ref="address" />
</bean>
好的,这就是我迷路的地方。在我的研究中(主要是通过教程),我从这一点上只看到了两种选择。但是,我将添加第三个:
- 我添加到 xml 中的地址定义中,本质上是对地址进行硬编码。问题 = 不是每个人都住在 123 nowhere 博士。
- 我将它硬编码到地址类中。问题 = 不是每个人都住在 123 nowhere 博士。
- (这是我的想法)我在 Address 类中为“street”参数添加了一个设置器。我在 Person 类中添加了一个“setStreet”方法。在 Person 实例化之后,Spring 注入了我的(空)依赖项。然后我调用传入街道名称的“setStreet”。“setStreet”然后调用地址类中“street”参数的设置器。现在我终于有了我的依赖,而 Main 不知道它。
有什么方法是正确的。将 Main 和 Address 解耦似乎很麻烦。在这件事上的任何帮助将不胜感激。