English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
IOC è ciò che si dice comunemente Inversione di Controllo, è anche un punto chiave nel Java, spesso chiesto durante le interviste.
Inversione di Controllo (IoC, abbreviazione in inglese) consegna il diritto di creare oggetti al framework, è una caratteristica importante del framework, non un termine specifico della programmazione orientata agli oggetti.
IOC cambia il modo in cui il programma ottiene gli oggetti, passando dal creare un oggetto new inizialmente al creare e iniettare tramite una terza parte framework. Il framework terzo di solito specifica tramite configurazione quale implementazione iniettare, riducendo così la dipendenza del codice sorgente.
Qual è il maggior vantaggio dell'IOC?
Poiché la generazione dell'oggetto è definita nell'XML, quando dobbiamo sostituire una sottoclasse implementativa diventerà molto semplice (generalmente tali oggetti sono implementati attraverso un'interfaccia), è sufficiente modificare l'XML, e così possiamo anche realizzare la sostituzione dinamica degli oggetti (un po' come l'interfaccia USB e l'hard disk SCSI).
Secondo il modo di implementazione, IOC può essere diviso in iniezione di dipendenza (DI) e ricerca di dipendenza
DI è la principale via di tecnologia di inversione di controllo, e si divide in iniezione di setter e iniezione di costruttore
Iniezione di setter
Dopo aver istanziato il bean tramite il costruttore senza parametri o il metodo statico senza parametri della fabbrica, chiamare il metodo setter del bean per realizzare l'iniezione di setter.
public class JDBCDataSource(){ private String driver; public void setDriver(String driver){ Class.forName(driver); this.driver=driver; } } ......... ........
Procedere all'iniezione di setter configurando il file xml
<bean id="dataSource" class="org.csdn.JDBCDataSource"> <property name="driver" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="user" value="andreny"/> <property name="password" value="root"/> </bean>
Iniezione di costruttore
Questo è realizzato chiamando il costruttore con parametri, il contenitore esegue il costruttore corrispondente in base al tipo di parametro quando il bean viene istanziato.
public class OracleUserDao implements UserDao{ private JDBCDataSource dataSource; public OracleUserDao(JDBCDataSource dataSource){ this.dataSource=dataSource; } } ........ ........
Iniezione di dipendenza specificata per l'indice del costruttore
<bean id="dataSource" class="org.csdn.JDBCDataSource"> <proerty name="driver" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="user" value="andreny"/> <property name="password" value="root"/> </bean> <bean id="userDao" class="org.csdn.OracleUserDao"> <construtor-argindex="0" ref="dataSource"/> </bean>
Conclusione
Questo è tutto il contenuto di questo articolo sulla解析 del codice di IOC di Spring, spero sia utile a tutti. Gli amici interessati possono continuare a consultare il nostro sito:
Spiegazione dettagliata di IoC e DI in Spring
Introduzione dettagliata all'implementazione del modello di iniezione di dipendenza di Spring
Se ci sono punti deboli, ti preghiamo di lasciare un messaggio per segnalarli. Grazie per il supporto degli amici a questo sito!
Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il diritto d'autore è proprietà del rispettivo proprietario, il contenuto è stato caricato autonomamente dagli utenti di Internet, questo sito non possiede il diritto di proprietà, non è stato editato manualmente e non assume responsabilità per le relative responsabilità legali. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una 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 i contenuti sospetti di violazione del copyright.