当前位置: 首页 > 面试题库 >

在运行时替换弹簧容器内的bean

奚修伟
2023-03-14
问题内容

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

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


问题答案:

使用代理可以轻松实现。创建接口的委派实现,并切换要委派的对象。

@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(..);
  }

  ..
}


 类似资料:
  • 问题内容: 在我的应用程序中,我必须用自定义的QLineEdit替换所有QLineEdit元素。为此,有不同的解决方案: 修改从pyuic4生成的py文件,然后用我的一个LineEdit替换所有QLineEdit对象。该解决方案并不是真正的最佳解决方案,因为每次运行pyuic4时,我都会丢失对所做的修改,并将其保存到生成的输出文件中。 编写一个新类,在我的窗口或对话框中递归搜索QLineEdit小

  • 我工作在一个微服务应用程序,有多个服务。我正在使用docker-compose运行不同微服务的实例。我们为每个微服务创建一个映像。如果我改变了一个微服务的代码,我使用'docker-compose down',然后改变更新的微服务的版本,然后使用'docker-compose up'。我认为,应该有一种不使用'docker-compose down'和'docker-compose up'的方法在

  • 问题内容: 我对jQuery一无所知,但想实现一些非常重要的事情。 我想要一个按钮/链接来替换div内容,如果再次按下该按钮,它将把原始内容放回原处。 问题答案: 这是一种方法: HTML: jQuery:

  • 我有一个python脚本,它计算给定文件的字数,并在执行后将输出保存到“result.txt”文件中。我希望docker容器在容器启动时执行此操作,并在控制台上显示输出。下面是我的docker文件和python文件 我正在映射一个本地目录,它有两个文本文件IF. txt和Limerick1.txt从主机到容器内的目录/home/data,容器内的python代码读取文件并将输出保存到result.

  • 问题内容: 当我调用时,我获得了在应用程序上下文中定义的bean的实例。但是,当我再次调用(使用相同的名称)时,我又得到了相同的Bean实例。我了解在某些情况下(很多情况下)这是理想的选择,但是我如何告诉给我一个新的实例呢? Spring配置示例(通常…我省略了一些冗长的内容,但这应该可以理解): 示例Java: 当我运行此程序时,我得到如下信息: 请注意,这两个对象具有相同的OOID …因此它们

  • 我试图用HttpResponseMessage返回一个错误消息,但我得到的是我假定的< code>StringContent。ToString()。这是我的代码: 错误状态代码类似于401、404等。消息是纯文本的,如“照片未找到”或“错误的参数”。我的期望是,当出现错误时,用状态代码(401等)进行响应。)和一条纯文本错误消息。我收到的是HTML格式的响应,状态代码为200,内容如下: Stat