1. Springprinzip
Der Kern im Inneren ist IOC. Die dynamische Injektion macht es unnötig, ein Objekt zu erstellen, und kann automatisch erstellt werden. Dies verwendet tatsächlich Reflexion in Java. Reflexion besteht darin, Objekte zur Laufzeit dynamisch zu erstellen und aufzurufen. Spring soll zur Laufzeit dynamisch Objekte erstellen und Methoden im Objekt mit der XMLSPRing -Konfigurationsdatei aufrufen.
Spring hat einen weiteren Kern, AOP, der eine Aspekt-orientierte Programmierung ist, kann einen bestimmten Objekttyp überwachen und steuern (dh das zuvor angegebene Modul, das Sie zuvor und nach dem Aufrufen der spezifischen Methoden dieser Art von Objekt aufgerufen haben), um die Funktion der Erweiterung eines Moduls zu erreichen. Diese werden durch Konfigurationsklassen erreicht.
Springs Zweck: Um die Beziehung zwischen Objekten (Modulen und Modulen) nicht durch Code zu verwirklichen, werden sie alle durch die Beschreibung der Konfigurationsklasse verwaltet (Spring stellt Objekte dynamisch durch Reflexion basierend auf diesen Konfigurationen zusammen).
Denken Sie daran: Spring ist ein Container, und nur Objekte im Container haben diese Dienste und Funktionen von Frühling.
Das klassische Designmuster, das im Frühjahr verwendet wird, ist: Template -Methodenmuster. (Ich werde es hier nicht vorstellen, es ist ein sehr häufig verwendetes Designmuster). Es gibt viele Konfigurationen im Frühjahr, was schwer zu erinnern ist, aber die Essenz des Frühlings ist nichts anderes als die oben genannten zwei Punkte. Nach dem Verständnis der oben genannten zwei Punkte werden Sie im Grunde genommen den Frühling beherrschen.
Springaop und IOC
1. IOC (InversionofControl): Kontrollinversion
1. IOC:
Konzept: Die Kontrolle wird vom Objekt selbst in den Container übertragen. Der Container erstellt Instanzen basierend auf der Konfigurationsdatei und Abhängigkeiten zwischen jeder Instanz.
Kern: Bean Factory; Im Frühjahr werden die verschiedenen von der Bean Factory erstellten Fälle Beans genannt
2. AOP (Aspekt-orientierte Programmierung): Aspektorientierte Programmierung
1. Zwei Wege des Stellvertreters:
Statischer Proxy:
Schreiben Sie Proxy -Klassen für jede bestimmte Klasse;
Schreiben einer Proxy -Klasse für eine Schnittstelle;
Dynamischer Proxy:
Schreiben Sie einen InvocationHandler für einen Aspekt und leihen Sie sich die Proxy -Klasse im JDK -Reflexionspaket aus, um entsprechende Proxy -Klassen für verschiedene Schnittstellen dynamisch zu generieren.
2. Dynamischer Proxy:
Es ist nicht erforderlich, eine Proxy -Klasse zu schreiben. Die virtuelle Maschine generiert eine Klasse basierend auf der vom realen Objekt implementierten Schnittstelle. Es instanziiert einen dynamischen Proxy durch die Klasse. Bei der Instanziierung des dynamischen Proxy werden das reale Objekt und die Geräte in den dynamischen Proxy injiziert. Der dynamische Proxy enthält den dynamischen Proxy. Wenn der Client die dynamische Proxy -Methode aufruft, erhält der dynamische Proxy die Methode des realen Objekts basierend auf der Reflexion der Klasse, die Invoke -Methode des Geräts und übergibt die Dynamic Proxy-, Methoden- und Methodenparameter an die Invoke -Methode des Geräts. Die Invoke -Methode verarbeitet vor oder nach dem Evozieren der Methodenmethode.
1. Klassen, die dynamischer Proxy erzeugen:
java.lang.refect.Proxy
2. Das Gerät muss die InvocationHandler -Schnittstelle implementieren, um die Invoke -Methode zu implementieren
3. Reflexion
Was ist ein Rabatt der Klasse?
Durch die Klassenbeschreibung können Sie die übergeordnete Klasse, die implementierte Schnittstelle, die interne Klasse, die Konstruktorin, die Methode und das Attribut der Klasse erhalten. Sie können ein Objekt entsprechend dem Konstruktor instanziieren, eine Methode ermitteln, den Attributwert annehmen und den Attributwert ändern. So erhalten Sie eine Klassenbeschreibung:
Klasse cls = class.class; Klasse cls = Object.getClass (); Class.Forname ("ClassPath");Wie bekomme ich eine Methode und reserviert sie?
Klasse cls = class.class; Constructor Cons = Cls.GetConstructor (neue Klasse [] {string.class}); Objekt obj = con.Newinstance (neues Objekt [] {"aaa"}); Methode Methode = Cls.getMethod ("Methodame", New Class [] {String.class, Integer.class}); method.invoke (obj, neues Objekt [] {"aa", New Integer (1)}); 4. Was sind die drei Injektionsmethoden des Frühlings?
Setter
Schnittstelle
Konstruktor
5. Was sind die Kernschnittstellen- und Kernel -Konfigurationsdateien von Spring?
FactoryBean: Factory Beans implementieren hauptsächlich ioc/di applicationContext ac = new FilexmlApplicationContext ("ApplicationContext.xml"); Objekt obj = ac.getbean ("ID -Wert");6. 7 Module des Spring -Frameworks
Das Pring-Framework ist eine hierarchische Architektur, die aus 7 gut definierten Modulen besteht. Federmodule sind auf dem Kernbehälter aufgebaut, wodurch definiert wird, wie Bohnen erstellt, konfiguriert und verwaltet werden. Jedes Modul (oder die Komponente), aus der das Feder -Framework besteht, kann allein existieren oder in Verbindung mit einem oder mehreren anderen Modulen implementiert werden. Die Funktionen jedes Moduls sind wie folgt:
Kernbehälter: Der Kernbehälter bietet die grundlegenden Funktionen des Spring -Frameworks. Die Hauptkomponente des Kernbehälters ist beanfaktorisch, was eine Implementierung des Fabrikmusters ist. BeanFactory verwendet den IOC -Modus (Inversion of Control), um die Konfigurations- und Abhängigkeitspezifikationen einer Anwendung vom tatsächlichen Anwendungscode zu trennen.
Federkontext: Der Federkontext ist eine Konfigurationsdatei, die Kontextinformationen für das Spring -Framework bereitstellt. Der Frühlingskontext umfasst Unternehmensdienste wie JNDI, EJB, E -Mail, Internationalisierung, Prüfsummenplanungsfunktionen.
Feder AOP: Durch die Konfigurationsverwaltungsfunktion integriert das Spring AOP-Modul direkt actionorientierte Programmierfunktionen in das Spring-Framework. Daher ist es einfach, jedes Objekt zu gestalten, das durch Spring Framework unterstützt wird. Das Spring AOP-Modul bietet Transaktionsverwaltungsdienste für Objekte in federbasierten Anwendungen. Durch die Verwendung von Spring AOP kann das deklarative Transaktionsmanagement in die Anwendung integriert werden, ohne sich auf EJB -Komponenten zu verlassen.
Spring DAO: Die JDBC DAO -Abstraktionsschicht bietet eine aussagekräftige Ausnahmehierarchie, mit der die Ausnahmebehandlung und Fehlermeldungen von verschiedenen Datenbankanbietern verwaltet werden können. Die Ausnahmehierarchie vereinfacht die Fehlerbehandlung und reduziert die Menge an Ausnahmecode, die geschrieben werden muss, erheblich (z. B. Öffnen und Schließen von Verbindungen). Die JDBC-orientierten Ausnahmen von Spring DAO folgen der gemeinsamen DAO-Ausnahmehierarchie.
FRINDE ORM: Das Spring Framework fügt mehrere ORM -Frameworks ein und bietet so ORM -Objektbeziehungstools, einschließlich JDO-, Hibernate- und Ibatis SQL -Karte. All dies folgt auf die gemeinsame Transaktion und die Dao -Ausnahmehierarchie von Spring.
Spring-Webmodul: Das Webkontextmodul basiert auf dem Anwendungskontextmodul und bietet einen Kontext für webbasierte Anwendungen. Daher unterstützt das Spring -Framework die Integration mit Jakarta Strebens. Das Webmodul vereinfacht auch die Arbeit der Handhabung mehrteiliger Anforderungen und Bindungsanforderungsparameter an Domänenobjekte.
Spring MVC Framework: Das MVC -Framework ist eine voll funktionsfähige MVC -Implementierung für das Erstellen von Webanwendungen. Über die Richtlinienschnittstelle wird das MVC -Framework hochkonfigurierbar, und MVC beherbergt eine große Anzahl von Sichttechnologien, einschließlich JSP, Geschwindigkeit, Fliesen, ITEXT und POI.
Die Funktionen des Spring Framework können auf jedem J2EE -Server verwendet werden, und die meisten von ihnen sind für nicht verwaltete Umgebungen geeignet. Der Kernpunkt des Frühlings ist: Unterstützung für wiederverwendbare Geschäfts- und Datenzugriffsobjekte, die nicht an bestimmte J2EE -Dienste gebunden sind. Es besteht kein Zweifel, dass solche Objekte zwischen verschiedenen J2EE -Umgebungen (Web oder EJB), eigenständigen Anwendungen und Testumgebungen wiederverwendet werden können.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über die einfache Erforschung des Spring -Arbeitsprinzips. Ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf diese Seite verweisen:
Spring Framework Web Project Practical Code Sharing
Häufige Konfigurations- und Analyseklassenbeschreibung des Frühlings
Java -Programmierungsimplementierung von SpringMVC Simple Login Beispiel
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!