Глядя на ваш код, кажется, все в порядке, и ваши компоненты получат autowired
. Вы должны указать имя пакета в XML-файле конфигурации, чтобы Spring мог отсканировать его для аннотаций.
Компоненты, управляемые Spring, в целом, по умолчанию и наиболее распространенной областью действия для автоматически определяемых компонентов является singleton.
На самом деле @Component является обобщением @Service и @Controller. См. документы .
Spring 2.5 вводит дальше
аннотации стереотипа: @Component,
@Service и @Controller. @Составная часть
служит общим стереотипом для любого
Пружинный компонент; в то время как,
@Repository, @Service и @Controller
служить специализациями @Component
для более конкретных случаев использования (например, в
постоянство, обслуживание и
слои представления соответственно).
Это означает, что вы можете
аннотировать ваши классы компонентов с
@ Компонент, но аннотируя их
с @Repository, @Service или
Вместо этого @Controller, ваши классы
более подходит для обработки
инструменты или связь с аспектами. За
Например, эти стереотипные аннотации
сделать идеальные цели для pointcut из
Конечно, также возможно, что
@Repository, @Service и @Controller
может нести дополнительную семантику в
будущие релизы весны
Фреймворк. Таким образом, если вы делаете
решение между использованием @Component или
@ Сервис для вашего сервисного уровня,
@Service - лучший выбор.
Точно так же, как указано выше,
@Repository уже поддерживается как
маркер для автоматического исключения
перевод в вашем постоянном слое.
Убедитесь, что значение default-autowire
или autowire
для этих бобов равно byType
. И тогда вы должны изменить ваши компоненты Boo, как показано ниже,
@Component("yay")
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public BooYay implements Boo
{...}
@Component("hoo")
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public BooHoo implements Boo
{...}
Возможно, вы захотите сделать это с autowire = "byName"
, в этом случае вам не понадобится @Qualifiers
, но вы должны предоставить соответствующие установщики. Надеюсь, вам сейчас удастся сбить это с толку.