gpt4 book ai didi

java - 如何在一个 bean 之后但在 Spring 中的另一个 bean 之前运行一个方法?

转载 作者:行者123 更新时间:2023-11-29 04:22:00 25 4
gpt4 key购买 nike

如何在另一个 bean 之前运行一个依赖于某个 bean 的方法?
我有两颗 bean 。 SecondBean 依赖于 FirstBean。此外,在创建 SecondBean 之前,我必须执行一些初始化逻辑,这应该与 FirstBean 和其他一些 bean 一起执行。
我会想象这样的事情(它不起作用,因为初始化不是 Bean):

@Autowired
public void initialization(FirstBean firstBean, SomeTotalyOtherBean otherBean){
firstBean.doSomething(otherBean);
}

@Bean
@DependsOn("initialization")
public SecondBean secondBean(FirstBean firstBean) {
return new SecondBean(firstBean);
}

@Bean
public FirstBean firstBean() {
return new FirstBean();
}

我知道我可以将所有初始化过程移动到 firstBean 方法中,但在我的情况下它似乎不正确,因为这个过程与 firstBean 创建无关.我也可以将初始化过程移到 secondBean 方法中,但它也不适合那里,因为此逻辑与 secondBean 创建无关。这只是一个逻辑,只有在这种情况下必须在这些 bean 创建之间执行。

最佳答案

合并 firstBean() 和 initialization(...) 以便 firstBean() 返回初始化的 bean。

Imo 更好的设计是仅在组件准备好用作依赖项/初始化后才发布组件。

编辑:初始化可以发生在 FirstBean 的构造函数中吗?

关于java - 如何在一个 bean 之后但在 Spring 中的另一个 bean 之前运行一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48530079/

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