gpt4 book ai didi

java - 以编程方式实例化具有 Spring 生命周期注释的类的对象

转载 作者:行者123 更新时间:2023-12-02 07:50:24 25 4
gpt4 key购买 nike

我正在测试一组类,这些类最终将用于在 Spring 上下文中创建 bean。我正在使用 JUnit 进行测试。我想确保当在测试中以编程方式实例化这些类的实例时,可以正确调用生命周期方法和 @Required setter。我知道我可以通过普通的旧java代理来做到这一点,但我想知道Spring(或其他地方)是否存在可以帮助我的特定工具。

我想写一些类似的东西

X x = ???.newBeanInstance(X.class); 
x.setFoo(foo);
x.setBar(bar);
x.$postConstruct();
...
x.$preDestroy();
x = null;

另一个不太理想的选项是仅创建上下文的 XML 并使用它来初始化实例。

最佳答案

如果您启动整个上下文,则可以使用 spring-test 包及其 @ContextConfiguration

如果你想手动处理事情,你就得靠自己了(几乎)。如果您有字段注入(inject),则可以使用ReflectionTestUtils来设置依赖项。但除此之外,您:

  • 使用new X()实例化对象
  • 调用设置者
  • 调用初始化方法(你应该知道它是哪一个)
  • 最后调用销毁方法

关于java - 以编程方式实例化具有 Spring 生命周期注释的类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10286893/

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