При использовании компонентного сканирования вам необходимо указать путь сканирования в конфигурации XML
<Контекст: компонент-сканирование Back-package = "yangjq.test">
Контейнерный экземпляр сканирует все классы компонентов в рамках пакета yangjq.test и его подпакета.
Только когда определениям класса компонентов предшествует следующие оценки аннотации, эти классы компонентов будут отсканированы в пружинном контейнере.
- @component General Annotation
- @name General Annotation
- @Repository Persistence Slay Annot
- @Service Business Layer Annotation компонент
- Аннотация компонента управления @controller управляющего слоя
имя
Компонент будет генерировать значение идентификатора по умолчанию (имя класса, начинающееся с нижнего регистра) во время процесса сканирования. Это также может быть настроено в отметке аннотации, например:
// Это идентификатор по умолчанию, значение - oracleuserdao@RepositoryPublic Class Oracleuserdao реализует userdao {} // Это пользовательский идентификатор, значение - loginservice@service ("loginservice") public class userservice {}Объем компонента
Объем по умолчанию компонентов, управляемых весной,-это «Синглтон». Если вам нужны другие область, вы можете использовать аннотацию @Scope, просто предоставьте имя применения в аннотации.
@Scope ("Прототип")@RepositoryPublic Class Oracleuserdao реализует userdao {}Инициализация и разрушение
@Postconstruct и @predestroy Annotation Tags используются для указания методов обратного вызова инициализации и разрушения, таких как:
public class examplebean {@postconstruct public void init () {// ......... инициализация} @predestroy public void destress () {// ...... Drestore}}Аннотация для бобов с зависимостью
Он может использовать любое из следующих
- @Resource
- @autowired/ @Qualifier
- @inject/ @назван
Обычно используется много @Resources, так что давайте поговорим о @Resource. Если вы используете другие, найдите и прочитайте их.
@Resource Аннотация Теги могут быть использованы до определений поля или определений метода сеттера. По умолчанию сначала впрыска матча используется по имени, а затем введите инъекцию совпадения.
Public Class userSerivce {//@resource Это используется для определения частного пользователя userdao userdao; @resource // Это используется для предшествующего методу сеттера public void setuserdao (userdao dao) {this.userdao = dao;}}}}}}Ошибка возникает, когда встречается несколько соответствующих бобов. Вы можете указать имя явно, например, @Resource (name = ”exampledao»).
Суммировать
Выше приведено подробное объяснение сканирования компонентов на основе аннотаций, и я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!