English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Analisi dettagliata dell'assemblaggio automatico e della scansione delle annotazioni in Spring

1 Assegnazione automatica del javabean

Iniezione automatica, riduzione delle informazioni di configurazione del file xml.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Limita le restrizioni xml del file -->
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
  <!-- 1 Creazione dell'oggetto Dao id: Completare il riferimento dell'oggetto class: Specificare il nome completo della classe dell'oggetto da creare -->
  <bean id="usersDao" class="org.guangsoft.dao.impl.UsersDaoImpl">
  </bean>
  <!-- 2 Creazione dell'oggetto service autowire: Funzione dell'attributo, completare l'assemblaggio automatico delle dipendenze degli oggetti no (predefinito) byName: Utilizzare il nome del metodo set richiesto per l'iniezione e l'id dell'oggetto nella convezione del contenitore Spring. Se corrispondono, viene eseguita l'iniezione automatica --> 
    byType: Utilizzare il tipo di metodo set richiesto per l'iniezione e il tipo dell'oggetto nella convezione del contenitore Spring. Se corrispondono, viene eseguita l'iniezione automatica constructor: Scegliere tra byName e byType (prima byName, poi byType se byName non corrisponde) 
    Utilizzo effettivo: byName -->
  <bean id="usersService" class="org.guangsoft.service.impl.UsersServiceImpl">
    autowire="byType">
  </bean>
  <!-- 3 Istanzia l'oggetto Action -->
  <bean id="usersAction" class="org.guangsoft.action.UsersAction"
    autowire="byType">
  </bean>
</beans>

2 Annotazioni di scansione di Spring

Usa le annotazioni di scansione di Spring per ricostruire la struttura in tre strati. Configura meno contenuti

Nel file applicationContext.xml, importare lo xsd di scansione

l Apri la scansione delle annotazioni

<?xml version="1.0" encoding="UTF-8"?>
<!-- Limita le restrizioni xml del file -->
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:context="http://www.springframework.org/schema/context" [ A1 ]
  xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-4.1.xsd
   ">
  <!-- Apri la scansione delle annotazioni base-package: specifica il pacchetto da scansionare, i pacchetti multipli sono separati da virgola a.b.c a.b.d a.b.e -->
  <context:component-scan
    base-package="org.guangsoft.dao.impl,
    org.guangsoft.service.impl,org.guangsoft.action"></context:component-scan>
</beans>

Conclusione delle annotazioni

Annotazione di classe:

@controller(annotazione aggiunta al livello web)

@service(annotazione aggiunta al livello service)

@repository(annotazione aggiunta al livello DAO)

@component(annotazione aggiunta al tipo Java, solo questa annotazione è disponibile in versioni precedenti di Spring)

Le tre annotazioni sopra menzionate: includono la classe corrispondente nel contenitore di Spring corrispondente

Id: la lettera iniziale del nome della classe in minuscolo (predefinito)

Se è necessario specificare manualmente l'id, è necessario aggiungere un parametro di tipo String alle tre annotazioni

@controller(“uAction”)id=uAction

@resouce(annotazione aggiunta all'oggetto che richiede la dipendenza)

Iniettare le dipendenze necessarie tramite l'assegnazione automatica

Parametro: name: assegnazione automatica per byName

Parametro: type: assegnazione automatica per byType

Processo di esecuzione delle annotazioni

1, caricare il contenitore di Spring

2, scansionare il pacchetto specificato nel contenitore di Spring

3, scansionare i classi con tre annotazioni di classe specificate nel pacchetto e quindi includere la classe nel contenitore di Spring

4, <beanid=””class=””>

5, scansione delle proprietà marcate con l'annotazione @resource nel componente di scansione e quindi stabilire la relazione di assegnazione automatica

6, Autowrie

Conclusione

Questo è tutto il contenuto dettagliato di questo articolo su Spring Auto-configuration e annotazione di scansione, spero sia utile a tutti. Gli amici interessati possono continuare a consultare il nostro sito:

Analisi dettagliata della scansione dei componenti basata su annotazioni

Analisi del problema di configurazione di Spring per la scansione di più pacchetti

Se ci sono punti deboli, ti preghiamo di lasciare un commento. Grazie per il supporto dei amici a questo sito!

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il diritto d'autore è di proprietà del rispettivo autore, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato elaborato manualmente e non assume alcuna responsabilità legale correlata. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare un'e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare e fornire prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare