我们说我有一个班级
@Component
注释
@Component
public class MyClass {}
现在我想将它用于两个不同的范围:prototype
和singleton
,而不在配置中定义它。
这可能吗?
答案 0 :(得分:0)
永远不应该有一个用例在两个不同的范围内拥有相同的bean。这是一种巨大的建筑气味,你应该重新设计你的应用程序。
那就是说,也许你的意思是你需要将一个原型范围的bean注入一个单独的bean?这是一个常见的用例,其含义在这些手册中有所体现:
但是如果你坚持在两个不同的范围内拥有相同的bean,可以使用@Bean
方法来实现:
@Configuration
public class MyConfig{
@Bean public MyClass singletonScope(){ return new MyClass(); }
@Bean @Scope("prototype") public MyClass prototypeScope(){ return new MyClass(); }
}