在 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 注释也无济于事。有没有办法用作用域代理覆盖单例?