@Component注释与限定符一起使用

时间:2016-06-03 07:05:51

标签: java spring

我们说我有一个班级 @Component注释

@Component
public class MyClass {}

现在我想将它用于两个不同的范围:prototypesingleton,而不在配置中定义它。 这可能吗?

1 个答案:

答案 0 :(得分:0)

  1. 永远不应该有一个用例在两个不同的范围内拥有相同的bean。这是一种巨大的建筑气味,你应该重新设计你的应用程序。

  2. 那就是说,也许你的意思是你需要将一个原型范围的bean注入一个单独的bean?这是一个常见的用例,其含义在这些手册中有所体现:

  3. 但是如果你坚持在两个不同的范围内拥有相同的bean,可以使用@Bean方法来实现:

    @Configuration
    public class MyConfig{
        @Bean public MyClass singletonScope(){ return new MyClass(); }
        @Bean @Scope("prototype") public MyClass prototypeScope(){ return new MyClass(); }
    }