默认情况下,取决于其他豆子的弹簧豆是否会获得这些豆的单例版本



我是使用Spring-Framework的新手,实际上我正在使用Spring-Boot库。我有以下问题:

我了解,默认情况下,@bean在@configuration类中注册的豆是单身人士,但是我发现依靠其他豆的豆类正在获取自己的这些豆的实例,而不是我希望它们的singleton实例有。

例如:

   @豆    public static void myfirstservice(){        返回新的myFirstService(foo(),bar());    }    @豆    公共静态void mysecondservice(){        返回新的mySecondService(foo(),bar());    }    @豆    公共静态void foo(){        返回new Foo();    }    @豆    公共静态void bar(){        返回新bar();    }

我希望MyFirstService和MySecondService的实例具有相同的foo和bar实例。那就是默认情况下应该发生的事情,对吗?还是我对豆的处理方式完全误解了一些?

我已经玩过@Scope注释(无济于事),但这是我的理解。

事先感谢您的任何输入!:)

我很快就发布了这个问题...(总是这样...)

我想出了答案。以防万一其他人犯同样的错误。我的IDE纠正了方法为"静态",当然不应该是。

我将这些方法更改为实例方法,一切都按预期工作。

您应该在此处使用@Autowied如下:

@Autowired
private MyFirstService myFirstService;
@Autowired
private MySecondService mySecondService;

以及在MyFirstService和MySecondService的Java类代码中,也可以自动导线foo和bar。

最新更新