0

在 Spring 中,是否可以使用作用域代理覆盖单例 bean 定义?也就是说,如果我有一些

@Configuration
public class MyConfiguration
{
    @Bean
    public Foo foo()
    {
        return new Foo();
    }
}

我想创建一个测试配置,但具有“Foo”的自定义范围:

@Configuration
public class MyTestConfiguration extends MyConfiguration
{
    @Override
    @Scope(value="myTestScope", proxyMode=ScopedProxy.TARGET_CLASS)
    public Foo foo()
    {
        return new Foo();
    }
}

但是,这种方法行不通!构造Foo仍然是单例!不幸的是,在测试配置中添加 @Primary 和添加 @Bean 注释也无济于事。有没有办法用作用域代理覆盖单例?

4

1 回答 1

0

有效的范围值是:

  1. 单例 - 每个 Spring IoC 容器返回一个 bean 实例
  2. 原型 – 每次请求时返回一个新的 bean 实例
  3. request – 每个 HTTP 请求返回一个 bean 实例。会话——</li>
  4. 每个 HTTP 会话返回一个 bean 实例。全球会话——
  5. 每个全局 HTTP 会话返回一个 bean 实例。
于 2013-07-16T23:03:44.723 回答