Сколько Spring bean-компонентов создается в этом случае

У меня есть класс с именем EmployeeService, который аннотирован аннотацией @service из Spring Framework.

package com.sample.EmployeeService
@Service
public class EmployeeService {

}

и у меня также есть запись в context.xml

<bean id="empSer" class ="com.sample.EmployeeService"

Могу ли я узнать, сколько bean-компонентов было создано в контейнере psring.


person Abdul Razak AK    schedule 18.09.2019    source источник
comment
Один . . .   -  person Aniket Sahrawat    schedule 18.09.2019
comment
Вы получите только 1 компонент, поскольку вы указали один идентификатор компонента в файле context.xml.   -  person GauravRai1512    schedule 18.09.2019
comment
Поскольку я аннотировал класс аннотацией @Service, не будет ли он создавать bean-компонент с id=employeeService   -  person Abdul Razak AK    schedule 18.09.2019
comment
Правильный ответ - зависит. Если и context.xml обрабатывается, и автосканирование активно, то вы действительно должны получить два bean-компонента, один из которых называется empSer, а другой — employeeService.   -  person Michal    schedule 18.09.2019


Ответы (1)


Здесь

Spring просканирует все классы с аннотацией @Service, зарегистрирует их как bean-компонент, а затем внедрит зависимости с аннотацией @Autowired.

@Service
public class EmployeeService {

}

Здесь

Context.xml — это расширенный контейнер Spring. Подобно BeanFactory, он может загружать определения bean-компонентов, связывать bean-компоненты вместе.

<bean id="empSer" class ="com.sample.EmployeeService"

На самом деле вы получаете один единственный компонент - независимо от того, загружается ли он context.xml первым или классы с аннотацией @Service

И

Если первый загружает context.xml, а второй загружает класс аннотаций @Service, приложение Spring перезаписывает по умолчанию, поскольку bean-компоненты загружаются в фабрику.

person Dulaj Kulathunga    schedule 18.09.2019