gpt4 book ai didi

java - 在运行时替换 Spring 容器内的 bean

转载 作者:IT老高 更新时间:2023-10-28 13:46:28 26 4
gpt4 key购买 nike

假设我在 Spring 容器中定义了一个 bean(例如 BeanA),并且这个 bean 被注入(inject)到一个对象中。 (例如 BeanAUser)

在运行时,我可以使用另一个 bean 实例来替换 spring 容器中的原始 BeanA 吗?并且还将这个新的 bean 实例重新注入(inject)到 BeanAUser 中以替换原来的 BeanA?

最佳答案

使用代理可以轻松实现。创建接口(interface)的委托(delegate)实现并切换它委托(delegate)的对象。

@Component("BeanA")
public class MyClass implements MyInterface {
private MyInterface target;

public void setTarget(MyInterface target) {
this.target = target;
}

// now delegating implementation of MyInterface methods
public void method1(..) {
this.target.method1(..);
}

..
}

关于java - 在运行时替换 Spring 容器内的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9147324/

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