Весенняя фасоль

Вопрос:

Я новичок в весне, поэтому не могли бы вы помочь мне понять нижеприведенный сценарий.

У меня есть класс bean, который объявлен как Bean.

class A{

B anotherClass=new B();

}

Как этот код отличается от приведенного ниже объявления

Class A{
@Autowire
B anotherClass;
}

Где в следующем случае я объявляю компонент класса B.

Вопрос::

Я знаю об инъекции зависимостей и тугой связи, но мой реальный вопрос является частью этого, если я объявляю B anotherclass= new B(), он будет создавать новый экземпляр для B каждый раз, когда Bean для класса A вызывается, может кто угодно помогите мне понять поток.

Лучший ответ:

Весной “Bean Container” сам управляет созданием и ссылкой на вас. Вы можете определить так называемые Bean Scopes, которые рассказывают весне, как управлять конкретным компонентом.

По умолчанию у компонента bean есть область “singleton”. Вы можете объявить другую область, аннотируя свой класс, используя аннотацию @Scope("scopename").

Наиболее часто используемые области:

  • singleton: Один экземпляр разделяется по всему весеннему контейнеру.
  • protoype: новый экземпляр компонента создается каждый раз, когда он ссылается.

Посмотрите документацию Spring или этот пример.

Оцените статью
TechArks.Ru
Добавить комментарий