IOC ist normalerweise das, was wir als Kontrollumkehr bezeichnen, was auch im Mittelpunkt von Java steht und oft während der Interviews gefragt wird.
Die Inversion der Kontrolle (IOC in englischer Abkürzung) gibt das Recht, Objekte für das Framework zu erstellen, was ein wichtiges Merkmal des Frameworks ist und kein besonderer Begriff für die objektorientierte Programmierung ist. Es umfasst die Abhängigkeitsinjektion (DI) und die Abhängigkeits -Lookup.
IOC ändert die Art und Weise, wie das Programm Objekte vom Beginn des neuen Objekts bis zur Erstellung und Injektion eines Drittanbieter-Frameworks erwirbt. Rahmenbedingungen von Drittanbietern geben im Allgemeinen an, welche Implementierung durch Konfiguration injiziert wird, wodurch die Kopplung des Quellcodes verringert wird.
Was ist der größte Vorteil von IOC?
Da die Objektgenerierung in XML definiert ist, wird sie sehr einfach, wenn wir in eine Implementierungsunterklasse wechseln müssen (normalerweise sind solche Objekte in irgendeiner Art von Schnittstelle realistisch). Ändern Sie einfach die XML, so dass wir sogar das heiße Verstopfung von Objekten implementieren können (ein bisschen wie USB -Schnittstelle und SCIS -Hardscheibe).
IOC kann in die Abhängigkeitsinjektion (DI) und die Abhängigkeitsuche gemäß der Implementierungsmethode unterteilt werden.
DI ist der Hauptansatz zur Kontrolle der Inversion, die in die Setterinjektion und die Konstruktorinjektion unterteilt ist
Setterinjektion
Nach dem Instanziieren der Bean durch Aufrufen des parameterlosen Konstruktors oder der statischen parameterlosen Fabrikmethode wird die Settermethode der Bean aufgerufen, um die Setterinjektion zu realisieren.
public class jdbcdataSource () {private String -Treiber; public void setDriver (String -Treiber) {class.forname (Treiber); this.driver = driver;}} ...............Implementieren Sie als Nächstes die XML -Datei Setter Injection Configuration
<bean id = "dataSource"> <Eigenschaft name = "treiber" value = "oracle.jdbc.oracledriver
Konstruktorinjektion
Dies wird erreicht, indem ein Konstruktor mit Parametern aufgerufen wird. Wenn der Container instanziiert ist, wird der entsprechende Konstruktor gemäß dem Parametertyp ausgeführt.
öffentliche Klasse OracleUserdao implementiert userDao {private jdbcDataSource dataSource; public OraclUserdao (jdbcDataSource dataSource) {thataTaSource = DataSource;}} ....................Geben Sie die Injektion nach Konstruktparameterindex an
<bean id = "dataSource"> <proerty name = "treiber" value = "oracle.jdbc.oracledriver id = "userDao"> <Constributor-Argindex = "0" ref = "dataSource"/> </bean>
Zusammenfassen
Das obige dreht sich alles um die IOC -Code -Analyse von Spring. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf diese Seite verweisen:
Detaillierte Erklärung von Spring's IOC und DI
Detaillierte Einführung in die Implementierung der IOC -Simulation von Spring
Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!