首页 > 解决方案 > Spring:如何配置 Spring bean 定义以在传递相同参数时返回相同的 bean 实例

问题描述

假设,我有一个prototype类型的 bean,A并且类A就像这样简单:

public class A {

  private final int x;

  // Constructor, getter
}

我想以某种方式配置 Spring 以A在我请求具有相同参数的 bean 时返回相同的实例x

如果我做这样的bean定义

@Bean
@Scope("prototype")
public void getA(int x) {
  return new A(x);
}

...然后任何调用都context.getBean(A.class, x)将返回一个新的实例,A但我想在传递相同的 x 值时获得相同的实例。有没有办法在不手动实现构造A实例的缓存的情况下构建这样的配置?

标签: javaspringdependency-injectionprototype

解决方案


推荐阅读