春豆宣言

时间:2014-07-23 06:30:38

标签: spring

我是春天新手所以请你帮我理解下面的情景。

我有一个声明为Bean的bean类。

class A{

   B anotherClass=new B();

}

上述代码与以下声明有何不同

Class A{
   @Autowire
   B anotherClass;
}

在下面的例子中,我声明了B类的bean。

问题::

我知道依赖注入和紧耦合,但我真正的问题是,如果我声明B anotherClass = new B(),它将为B创建新的实例每次为A类的Bean是任何人都可以帮我理解这个流程。

1 个答案:

答案 0 :(得分:1)

在春天,豆容器'它本身管理为您创建和引用实例。您可以定义所谓的bean Scopes ,告诉spring如何管理特定的bean。

默认情况下,bean具有' singleton'范围。您可以使用@Scope("scopename")注释对类进行注释来声明不同的范围。

最常用的范围是:

  • singleton :整个弹簧容器共享一个实例。
  • protoype :每次引用时都会创建一个新的bean实例。

查看Spring documentationthis example