gpt4 book ai didi

java - Spring 注入(inject)技巧

转载 作者:行者123 更新时间:2023-12-01 12:36:32 25 4
gpt4 key购买 nike

我有:在构造函数中将 MyClassString 对象注入(inject)到 Utils 中。

问题:

  1. 在 Utils bean 定义中(查看 beans 定义 部分)我只提到 Utils 构造函数的第二个参数,它是如何工作的?
  2. 如何在单元测试中将 MyClass 模拟传递到 Utils 对象中?我的意思是如何重新定义 bean 定义?

Utils.java

public class Utils {
@Inject
public Utils(MyClass obj, String val) {
this.obj = obj;
this.val = val;
}

Bean 定义:

<bean class="com.mypack.MyClass"/>

<bean id="utils" class="com.mypack.Utils">
<constructor-arg value="bucket" />
</bean>

最佳答案

您可以为单元测试定义另一个(测试)上下文:

    @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "my-test-context.xml",
"some-other-context.xml" })
public class SkipSampleFunctionalTests {

@Autowired
private SomeBean bean;

...
}

如果您只想覆盖一个 bean,您可以将您的主(核心)上下文导入测试上下文并仅更改所需的 bean:

<import resource="main-context.xml"/>
<bean id="x" class="com.asd.MyClass">
<property name="y" ref="y"/>
</bean>

关于java - Spring 注入(inject)技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25532758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com