Federgerüst

Federgerüst
Spring Framework Logo 2018.svg
Entwickler (en) VMware
Erstveröffentlichung 1. Oktober 2002; Vor 19 Jahren
Stabile Version
5.3.19[1] Edit this on Wikidata / 13. April 2022; vor 3 Monaten
Repository
Geschrieben in Java
Plattform Java ee
Typ Anwendungsrahmen
Lizenz Apache -Lizenz 2.0
Webseite Frühling.io/Projekte/Frühlingsrahmen Edit this on Wikidata

Das Federgerüst ist ein Anwendungsrahmen und Kontrollinversion Container für die Java -Plattform. Die Kernfunktionen des Frameworks können von jeder Java -Anwendung verwendet werden. Es gibt jedoch Erweiterungen zum Erstellen von Webanwendungen über dem Java ee (Enterprise Edition) Plattform. Obwohl der Rahmen keine spezifischen Auferprobung ProgrammiermodellEs ist in der Java -Community als Ergänzung zum beliebt geworden Enterprise Javabeans (EJB) Modell. Das Frühlingsgerüst ist Open Source.

Versionsgeschichte

Ausführung Datum Anmerkungen
0,9 2003
1.0 24. März 2004 Erste Produktionsveröffentlichung.
2.0 2006
3.0 2009
4.0 2013
5.0 2017

Die erste Version wurde von geschrieben von Rod Johnson, der den Rahmen mit der Veröffentlichung seines Buches veröffentlichte Experten-Einzel-J2EE-Design und -entwicklung im Oktober 2002. Der Rahmen wurde erstmals unter dem veröffentlicht Apache 2.0 Lizenz Im Juni 2003. Die erste Produktionsveröffentlichung, 1.0, wurde im März 2004 veröffentlicht.[2] Das Frühling 1.2.6 Framework gewann a Jolt Productivity Award und ein JAX Innovation Award im Jahr 2006.[3][4] Spring 2.0 wurde im Oktober 2006, Frühjahr 2,5 im November 2007, im Dezember 2009, im Frühjahr 3,0 im Dezember 2009, im Dezember 2011 und im Frühjahr 3.2.5 im November 2013 veröffentlicht.[5] Spring Framework 4.0 wurde im Dezember 2013 veröffentlicht.[6] Bemerkenswerte Verbesserungen im Frühjahr 4.0 enthalten die Unterstützung für Java SE (Standard Edition) 8, Groovig 2, einige Aspekte von Java ee 7 und Websocket.

Spring Boot 1.0 wurde im April 2014 veröffentlicht.[7]

Spring Framework 4.2.0 wurde am 31. Juli 2015 veröffentlicht und sofort auf Version 4.2.1 aktualisiert, das am 01. September 2015 veröffentlicht wurde.[8] es ist "Kompatibel mit Java 6, 7 und 8, mit Schwerpunkt auf Kernverfeinerungen und modernen Webfunktionen".[9]

Spring Framework 4.3 wurde am 10. Juni 2016 veröffentlicht und wird bis 2020 unterstützt.[10] Es "Wird die endgültige Generation innerhalb der allgemeinen Quelle 4 -Systemanforderungen (Java 6+, Servlet 2.5+), [...]" sein ".[9]

Das Frühjahr 5 wird angekündigt, um aufgebaut zu werden Reaktive Ströme Kompatibler Reaktorkern.[11]

Module

Das Spring -Framework umfasst mehrere Module, die eine Reihe von Diensten bieten:

Inversion des Kontrollbehälters (Abhängigkeitsinjektion)

Zentral im Frühlingsgerüst ist sein Kontrollinversion (IOC) Container, der ein konsistentes Mittel zur Konfiguration und Verwaltung von Java -Objekten bietet Betrachtung. Der Container ist für die Verwaltung verantwortlich Objektlebenszyklen von spezifischen Objekten: Erstellen dieser Objekte, das Aufrufen ihrer Initialisierungsmethoden und das Konfigurieren dieser Objekte durch Verdrahtung zusammen.

Vom Container erstellte Objekte werden auch als verwaltete Objekte bezeichnet oder Bohnen. Der Container kann durch Laden konfiguriert werden Xml (Extensible Markup Language) Dateien oder Spezifische Erkennung Java -Anmerkungen auf Konfigurationsklassen. Diese Datenquellen enthalten die Bean -Definitionen, die die zum Erstellen der Beans erforderlichen Informationen enthalten.

Objekte können entweder mit Abhängigkeits -Lookup- oder Abhängigkeitsinjektion erhalten werden.[13] Die Abhängigkeits -Lookup ist ein Muster, bei dem ein Anrufer das Containerobjekt für ein Objekt mit einem bestimmten Namen oder einem bestimmten Typ fragt. Die Abhängigkeitsinjektion ist ein Muster, bei dem der Container Objekte per Namen über beide Objekte übergeben Konstrukteure, Eigenschaften, oder Fabrikmethoden.

In vielen Fällen muss man den Container bei Verwendung anderer Teile des Spring -Frameworks nicht verwenden, obwohl eine Anwendung wahrscheinlich das Konfigurieren und Anpassen erleichtert. Der Federcontainer bietet einen konsistenten Mechanismus zur Konfiguration von Anwendungen und integriert in fast alle Java-Umgebungen, von kleinen Anwendungen bis hin zu großen Unternehmensanwendungen.

Der Container kann in eine teilweise konform umgewandelt werden EJB (Enterprise JavaBeans) 3.0 Container mittels des Pitchfork -Projekts. Etwas[wer?] Kritisieren Sie den Frühlingsrahmen für die Nichteinhaltung der Standards.[14] Springource sieht jedoch keine EJB 3 -Compliance als Hauptziel an und behauptet, dass der Frühlingsgerüst und der Container leistungsfähigere Programmiermodelle ermöglichen.[15] Der Programmierer erstellt kein Objekt nicht direkt, sondern beschreibt, wie es erstellt werden soll, indem es in der Feder -Konfigurationsdatei definiert wird. In ähnlicher Weise werden Dienste und Komponenten nicht direkt bezeichnet. Stattdessen definiert eine Spring -Konfigurationsdatei, welche Dienste und Komponenten aufgerufen werden müssen. Dieses IOC soll die einfache Wartung und Prüfung erhöhen.

Aspektorientiertes Programmierrahmen

Das Frühlingsgerüst hat seine eigene Aspekt-orientiertes Programmieren (AOP) Framework, der die Überschneidungsbedenken modularisiert Aspekte. Die Motivation für die Erstellung eines separaten AOP -Frameworks ergibt sich aus der Überzeugung, dass es möglich sein sollte, grundlegende AOP -Funktionen ohne allzu viel Komplexität in Bezug auf Design, Implementierung oder Konfiguration bereitzustellen. Das Frühlings -AOP -Framework nutzt den Federbehälter auch voll aus.

Das Frühlings -AOP -Framework ist Proxymusterbasiertund ist bei konfiguriert Laufzeit. Dadurch wird die Notwendigkeit eines Zusammenstellungsschritts oder einer Ladezeitwebens entfernt. Andererseits ermöglicht das Abfangen nur für öffentliche Methodenausfälle für vorhandene Objekte bei a Beitrittspunkt.

Im Vergleich zu den Aspektj Framework, Frühlings -AOP ist weniger leistungsstark, aber auch weniger kompliziert. Spring 1.2 beinhaltet Unterstützung für die Konfiguration von Aspekta -Aspekten im Container. Spring 2.0 fügte mehr Integration mit Aspektj hinzu; Zum Beispiel die Pointcut Die Sprache wird wiederverwendet und kann mit Aspekten auf Frühlings-AOP-basierten Aspekten gemischt werden. Darüber hinaus hat Spring 2.0 eine Frühlingsaspekt-Bibliothek hinzugefügt, in der Aspektjs gemeinsame Federfunktionen wie deklaratives Transaktionsmanagement und Abhängigkeitsinjektion über Aspektj Compile-Zeit oder Ladezeitweben anbieten. Springource Verwendet auch Aspekte AOP in anderen Frühlingsprojekten wie Spring Roo und Spring Insight, wobei Spring Security auch eine Aspekt-basierte Aspektbibliothek bietet.

Die Frühlings-AOP wurde entwickelt, um im Feder-Framework mit überschnittenen Bedenken zu arbeiten. Jedes vom Container erstellte und konfigurierte Objekt kann mit Feder AOP angereichert werden.

Das Spring Framework verwendet Frühlings -AOP intern für Transaktionsverwaltung, Sicherheit, Remotezugriff und JMX.

Seit Version 2.0 des Frameworks bietet Spring zwei Ansätze für die AOP -Konfiguration:

  • Schema-basierter Ansatz[16] und
  • @Aspektj-basierter Annotationsstil.[17]
 xmlns ="http://www.springframework.org/schema/beans"  xmlns: mvc ="http://www.springframework.org/schema/mvc"   xmlns: xsi ="http://www.w3.org/2001/xmlschema-instance"  XMLNS: AOP ="http://www.springframework.org/schema/aop"   XMLNS: Kontext ="http://www.springframework.org/schema/context"  XSI: Schemalokalisierung ="http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans.xsd         http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd         http://www.springframework.org/schema/mvc         http://www.springframework.org/schema/mvc/spring-mvc.xsd         http://www.springframework.org/schema/aop          http://www.springframework.org/schema/aop/spring-aop.xsd "> 

Das Frühlingsteam beschloss, keine neue AOP-bezogene Terminologie einzuführen. Daher in der Frühlingsreferenzdokumentation und API, Begriffe wie z. Aspekt, Join Point, Rat, Pointcut, Einführung, Zielobjekt (empfohlenes Objekt), AOP -Proxy und Weben alle haben die gleichen Bedeutungen wie in den meisten anderen AOP -Frameworks (insbesondere Aspektj).

Datenzugriffsframework

Das Data Access Framework von Spring befasst sich mit häufigen Schwierigkeiten, mit denen Entwickler bei der Arbeit mit Datenbanken in Anwendungen ausgesetzt sind. Die Unterstützung wird für alle beliebten Datenzugriffs -Frameworks in Java vorgesehen: JDBC, Ibatis/Mybatis, Überwintern, Java -Datenobjekte (JDO, seit 5.x eingestellt), Java Persistenz API (JPA), Oracle Toplink, Apache OJB, und Apache Cayenne, unter anderen.

Für all diese unterstützten Frameworks bietet Spring diese Funktionen

  • Ressourcenverwaltung - automatische Erwerben und Freigabe von Datenbankressourcen
  • Ausnahmebehandlung - Übersetzungsdatenzugriffsausnahme in eine Springdatenzugriffs -Hierarchie übersetzen
  • Transaktionsbeteiligung - transparente Beteiligung an laufenden Transaktionen
  • Ressourcen -Auspacken - Abrufen von Datenbankobjekten von Verbindungspool -Wrappern abrufen
  • Abstraktion für Binär großes Objekt (Blob) und Charakter großes Objekt (CLOB) Handling

Alle diese Funktionen werden bei der Verwendung verfügbar Vorlagenklassen bereitgestellt durch Frühling für jedes unterstützte Framework. Kritiker haben gesagt, diese Vorlagenklassen seien aufdringlich und bieten keinen Vorteil gegenüber (zum Beispiel) der Hibernate -API direkt.[18][Fehlgeschlagene Überprüfung] Als Reaktion darauf haben die Frühlingsentwickler es ermöglicht, den Hibernate- und JPA -APIs direkt zu verwenden. Dies erfordert jedoch ein transparentes Transaktionsmanagement, da der Anwendungscode nicht mehr die Verantwortung übernimmt, Datenbankressourcen zu erhalten und zu schließen, und keine Ausnahmeübersetzung unterstützt.

Zusammen mit dem Transaktionsmanagement von Spring bietet sein Datenzugriffs -Framework eine flexible Abstraktion für die Arbeit mit Datenzugriffs -Frameworks. Das Spring Framework bietet keine gemeinsame Daten zu Datenzugriffs -API. Stattdessen wird die volle Kraft der unterstützten APIs intakt gehalten. Das Spring Framework ist das einzige in Java verfügbare Framework, das verwaltete Datenzugriffsumgebungen außerhalb eines Anwendungsservers oder Containers bietet.[19]

Während der Verwendung des Frühlings für das Transaktionsmanagement mit Hibernate müssen möglicherweise die folgenden Bohnen konfiguriert werden:

  • A Datenquelle wie com.mchange.v2.c3p0.combopooledDataSource oder org.apache.commons.dbcp.basicdatasource
  • Eine Sitzung org.springframework.orm.hibernate3.Localsessionfactorybean mit einem DataSource -Attribut
  • Ein HibernateProperties wie org.springframework.bean.factory.config.propertiesfactoryBean
  • Ein Transaktionsmanager org.springframework.orm.hibernate3.hibernatetransactionManager mit einem SessionFactory -Attribut

Weitere Konfigurationspunkte sind:

  • Eine AOP -Konfiguration von Schneidpunkten.
  • Transaktionssemantik von AOP -Ratschlägen[klären].

Transaktionsmanagement

Das Transaktionsmanagement -Framework von Spring bringt einen Abstraktionsmechanismus in die Java -Plattform. Seine Abstraktion ist in der Lage:

Im Vergleich, Java Transaktionsapi (JTA) unterstützt nur verschachtelte Transaktionen und globale Transaktionen und erfordert einen Anwendungsserver (und in einigen Fällen auch Bereitstellung von Anwendungen in einem Anwendungsserver).

Das Spring Framework versendet einen PlatformTransactionManager für eine Reihe von Transaktionsmanagementstrategien:

  • Transaktionen, die auf einer JDBC -Verbindung verwaltet werden
  • Transaktionen, die auf objektrelationalen Mapping-Einheiten der Arbeit verwaltet werden
  • Transaktionen, die über den JTA TransactionManager und die UserTransaction verwaltet werden
  • Transaktionen, die mit anderen Ressourcen verwaltet werden, wie Objektdatenbanken

Neben diesem Abstraktionsmechanismus bietet das Framework auch zwei Möglichkeiten zum Hinzufügen von Transaktionsmanagement zu Anwendungen:

  • Programmatisch mithilfe der TransactionTemplate von Spring
  • Konfigurativ durch Verwendung Metadaten Wie XML- oder Java -Anmerkungen (@transactional usw.)

Zusammen mit dem Datenzugriffsframework von Spring, der das Transaktionsmanagement -Framework integriert, ist es möglich, ein Transaktionssystem durch Konfiguration einzurichten, ohne sich auf JTA oder auf JTA verlassen zu müssen Ejb. Das Transaktionsrahmen integriert sich auch in Messaging und zwischengespeichert Motoren.

Modell -View -Controller -Framework

Spring MVC/Web -reaktive Präsentation von Jürgen Höller gegeben

Das Spring -Framework bietet seine eigene Model View Controller (MVC) Webanwendungs ​​-Framework, was ursprünglich nicht geplant war. Die Frühlingsentwickler beschlossen, ihr eigenes Web -Framework als Reaktion auf das zu schreiben, was sie als schlechtes Design des (damals) beliebten (damals) beliebten als wahrgenommen hatten Jakarta Streben Web Framework,[20] sowie Mängel in anderen verfügbaren Frameworks. Insbesondere waren sie der Ansicht, dass es unzureichende Trennung zwischen der Präsentation und den Anforderungshandhabungsschichten sowie zwischen der Anfrage zur Handhabung und dem Modell gab.[21]

Spring MVC ist wie Struts ein anforderungsbasiertes Framework. Das Rahmen definiert Strategie Schnittstellen für alle Verantwortlichkeiten, die von einem modernen anforderungsbasierten Framework übernommen werden müssen. Das Ziel jeder Schnittstelle ist es, einfach und klar zu sein, so dass es für Spring -MVC -Benutzer einfach ist, ihre eigenen Implementierungen zu schreiben, wenn sie dies wünschen. MVC ebnet den Weg für den Cleaner -Front -End -Code. Alle Schnittstellen sind eng mit dem gekoppelt Servlet API. Diese enge Kopplung an die Servlet-API wird von einigen als Ausfall der Springentwickler angesehen, eine hochrangige Abstraktion für webbasierte Anwendungen anzubieten. Diese Kopplung stellt jedoch sicher, dass die Funktionen der Servlet -API Entwicklern zur Verfügung stehen und gleichzeitig ein hohes Abstraktionsrahmen bieten, um die Arbeit damit zu erleichtern.

Die DispatcherServlet -Klasse ist die Front -Controller[22] des Rahmens und ist für die Delegation der Kontrolle an die verschiedenen Schnittstellen während der Ausführungsphasen von a verantwortlich HTTP -Anfrage.

Die wichtigsten Schnittstellen, die von Spring MVC und deren Verantwortung definiert sind, sind unten aufgeführt:

  • Controller: Kommt zwischen Modell und Ansicht, um eingehende Anforderungen zu verwalten und zu einer ordnungsgemäßen Reaktion umzuleiten. Controller kartiert die HTTP -Anforderung an entsprechende Methoden. Es fungiert als ein Tor, das die eingehenden Informationen leitet. Es wechselt zwischen Modell oder Ansicht.
  • Handleradapter: Ausführung von Objekten, die eingehende Anforderungen verarbeiten
  • Handlerinterceptor: Abfangen eingehender Anfragen vergleichbar, aber nicht gleich den Servletfiltern (Verwendung ist optional und von DispatcherServlet nicht gesteuert).
  • Handlermapping: Wählen Sie Objekte aus
  • Localeresolver: Auflösen und optional Speichern der Gebietsschema eines einzelnen Benutzer
  • Multipartresolver: Erleichterung der Arbeit mit Datei -Uploads durch Einwickeln eingehender Anfragen
  • Ansicht: Verantwortlich für die Rückgabe einer Antwort an den Kunden. Einige Anfragen können direkt zur Anzeige gehen, ohne zum Modellteil zu gehen. Andere können alle drei durchgehen.
  • ViewResolver: Auswählen einer Ansicht basierend auf einem logischen Namen für die Ansicht (Verwendung ist nicht ausschließlich erforderlich)

Jede obige Strategieschnittstelle hat eine wichtige Verantwortung im Gesamtrahmen. Die von diesen Schnittstellen angebotenen Abstraktionen sind leistungsstark. Um eine Reihe von Variationen in ihren Implementierungen zu ermöglichen, wird Spring -MVC mit Implementierungen all dieser Schnittstellen und gemeinsam eine Funktion auf der Servlet -API anbietet. Entwickler und Anbieter können jedoch andere Implementierungen schreiben. Spring MVC verwendet die Java java.util.map Schnittstelle als datenorientierte Abstraktion für das Modell, bei dem Tasten von Stringwerten erwartet werden.

Die einfache Prüfung der Implementierungen dieser Schnittstellen scheint ein wichtiger Vorteil der hohen Abstraktionsniveau von Spring MVC zu sein. Der Dispatcherservlet ist eng mit der Federinversion des Steuercontainers gekoppelt, um die Webebenen von Anwendungen zu konfigurieren. Webanwendungen können jedoch andere Teile des Spring -Frameworks - einschließlich des Containers - verwenden und sich dafür entscheiden, Spring MVC nicht zu verwenden.

Ein Workflow von Frühlings -MVC

Wenn ein Benutzer auf einen Link klickt oder ein Formular in seinem Webbrowser einreicht, geht die Anforderung an Spring Dispatcherservlet. Dispatcherservlet ist ein Frontkontroller im Frühjahr MVC. Es konsultiert ein oder mehrere Handler -Mappings. Dispatcherservlet wählt einen geeigneten Controller aus und leitet die Anfrage daran weiter. Der Controller verarbeitet die bestimmte Anforderung und generiert ein Ergebnis. Es ist als Modell bekannt. Diese Informationen müssen in HTML oder einer beliebigen Front-End-Technologie wie JSP formatiert werden. Dies ist die Ansicht einer Anwendung. Alle Informationen befinden sich im Modell- und Ansichtsobjekt. Wenn der Controller nicht an eine bestimmte Ansicht gekoppelt ist, findet DispatcherServlet den tatsächlichen JSP mit Hilfe von ViewResolver.

Konfiguration von Dispatcherservlet

Der DispatcherServlet muss in web.xml konfiguriert werden

  MyServlet  org.springframework.web.servlet.DispatcherServlet    MyServlet  /  

Remote -Zugriffs -Framework

Das Remote -Access -Framework von Spring ist eine Abstraktion für die Arbeit mit verschiedenen RPC (Remote -Verfahrensanruf) -basierte Technologien, die auf der Java-Plattform sowohl für Client-Konnektivität als auch für Marshalling-Objekte auf Servern verfügbar sind. Die wichtigste Funktion dieses Frameworks besteht darin, die Konfiguration und Verwendung dieser Technologien so weit wie möglich durch die Kombination der Kontrolle von Kontrolle und AOP zu erleichtern.

Das Framework bietet auch Fehlerwiederherstellung (automatische Wiederverbindung nach Verbindungsfehler) und einige Optimierungen für die kundenseitige Verwendung von EJB-Remote Staatelose Sitzungsbohnen.

Die Frühling unterstützt diese Protokolle und Produkte außerhalb des Boxs

  • HTTP-basierte Protokolle
    • Hessian: Binäres Serialisierungsprotokoll, offen und aufrechterhalten von Corba-Basierte Protokolle
    • RMI (1): Methodenaufrufe unter Verwendung der RMI -Infrastruktur und dennoch spezifisch für den Frühling
    • RMI (2): Methodenaufrufe unter Verwendung von RMI -Schnittstellen, die der regelmäßigen RMI -Nutzung entsprechen
    • Rmi-iiop (Corba): Methodenaufrufe mit RMI-IIIP/CORBA
  • Enterprise Javabean Kundenintegration
    • Lokale EJB -Beeinigung der staatenlosen Sitzung: Verbindung mit lokalen staatenlosen Sitzungsbohnen herstellen
    • Remote EJB Stateless Session Bean -Konnektivität: Verbindung mit Remote -staatenlosen Sitzungs Beans herstellen
  • SEIFE

Apache CXF Bietet eine Integration mit dem Spring Framework für den Exportieren von Objekten im RPC-Stil auf der Serverseite.

Sowohl Client- als auch Server-Setup für alle Protokolle im RPC-Stil und Produkte, die vom Spring Remote Access-Framework (mit Ausnahme der Apache-Achse-Unterstützung) unterstützt werden, ist im Spring Core Container konfiguriert.

Es gibt eine alternative Open-Source-Implementierung (Cluster4Spring) eines Remoting-Subsystems, das in Spring-Framework enthalten ist, das verschiedene Remotungsschemata (1-1, 1-viele, dynamische Dienste entdecken) unterstützen soll ...

Convention-Over-Configuration Rapid Application Development

Federschuh

Spring -Boot -Erweiterung ist Spring's Konvention über Konfiguration Lösung für die Erstellung von eigenständigen, produktionsqualifizierten Feder-basierten Anwendungen, die Sie "einfach ausführen" können.[23] Es ist mit der "Meinung" des Frühlings-Teams über die beste Konfiguration und Verwendung der Frühlingsplattform und der Bibliotheken von Drittanbietern vorkonfiguriert, damit Sie mit minimaler Aufregung beginnen können. Die meisten Spring -Boot -Anwendungen benötigen nur sehr wenig Federkonfiguration.

Hauptmerkmale:

  • Erstellen Sie eigenständige Federanwendungen
  • Tomcat einbetten oder Steg Direkt (keine Bereitstellung KRIEG Dateien)
  • Geben Sie einen "Starter" an Projektobjektmodelle (POMS), um Ihre Maven/Gradle -Konfiguration zu vereinfachen
  • Konfigurieren Sie die Feder nach Möglichkeit automatisch
  • Stellen Sie produktionsbereite Funktionen wie z. Metriken, Gesundheitskontrollen und externalisierte Konfiguration
  • Absolut keine Codegenerierung und keine Voraussetzung für die XML -Konfiguration.[24]
  • Smooth Integration und unterstützt alle Unternehmensintegrationsmuster.

Frühlingsroo

Spring Roo ist ein Community-Projekt, das einen alternativen, Code-Generation-basierten Ansatz für die Verwendung von Konventionen zur Konfiguration bietet, um schnell Anwendungen in zu erstellen Java. Es unterstützt derzeit Spring Framework, Frühlingssicherheit und Federnetzfluss. Roo unterscheidet sich von anderen Schnelle Anwendungsentwicklung Frameworks, indem Sie sich auf:

  • Erweiterbarkeit (über Add-Ons)
  • Java -Plattformproduktivität (im Gegensatz zu anderen Sprachen)
  • Lock-In-Vermeidung (RoO kann innerhalb weniger Minuten von jeder Anwendung entfernt werden)
  • Vermeidung von Laufzeit (mit zugehörigen Bereitstellungsvorteilen)
  • Benutzerfreundlichkeit (insbesondere über die Shell -Merkmale und Verwendungsmuster)

Batch -Framework

Frühlingsstapel ist ein Rahmen für Stapelverarbeitung Dies liefert wiederverwendbare Funktionen, die für die Verarbeitung großer Mengen von Datensätzen von wesentlicher Bedeutung sind, einschließlich:

  • Protokollierung/Verfolgung
  • Transaktionsmanagement
  • Statistiken zur Bearbeitung von Arbeitsplätzen
  • Job Neustart

Es bietet außerdem fortschrittlichere technische Dienste und Funktionen, die extremvolumige und leistungsstarke Batch-Jobs durch Optimierungen und Partitionierungstechniken ermöglichen. Spring Batch führt eine Reihe von Jobs aus; Ein Job besteht aus vielen Schritten und jeder Schritt besteht aus einer Read-Process-Write-Aufgabe oder einer einzelnen Operation (Tasklet).

Der Prozess "Read-Process-Write" besteht aus diesen Schritten: "Lesen" Daten aus einer Ressource (Komma-getrennte Werte (CSV), XML oder Datenbank), "verarbeiten" und dann in andere Ressourcen (CSV, XML oder Datenbank) "schreiben". Beispielsweise kann ein Schritt Daten aus einer CSV -Datei lesen, sie verarbeiten und in die Datenbank schreiben. Spring Batch bietet viele Klassen zum Lesen/Schreiben von CSV, XML und Datenbank.

Für eine "einzelne" Betriebsaufgabe (Tasklet) bedeutet dies, nur eine einzige Aufgabe zu erledigen, wie die Ressourcen vor oder nach einem Schritt gestartet oder abgeschlossen.

Die Schritte können zusammengekettet werden, um als Job zu laufen.

Integrationsrahmen

Frühlingsintegration ist ein Rahmen für Enterprise Application Integration Dies bietet wiederverwendbare Funktionen, die für Messaging oder ereignisgesteuerte Architekturen von wesentlicher Bedeutung sind.

  • Router - gibt eine Nachricht an einen Nachrichtenkanal basierend auf den Bedingungen weiter
  • Transformatoren - Konvertiert/transformiert/ändert die Nachrichtennutzlast und erstellt eine neue Nachricht mit transformierter Nutzlast
  • Adapter - Integration in andere Technologien und Systeme (HTTP, Amqp (Erweiterte Nachrichtenwarteschlange -Protokoll), JMS (Java Message Service), XMPP (Extensible Messaging und Präsenzprotokoll), SMTP (Simple Mail Transfer Protocol), IMAP (Internet -Nachrichtenzugriffsprotokoll), Ftp (Dateitransferprotokoll) sowie Ftps/Sftp, Dateisysteme usw.)
  • Filter - filtert eine Nachricht basierend auf den Kriterien. Wenn die Kriterien nicht erfüllt sind, wird die Nachricht fallen gelassen.
  • Serviceaktivatoren - Rufen Sie einen Betrieb auf ein Serviceobjekt auf
  • Management und Prüfung

Die Spring-Integration unterstützt Architekturen auf Rohr- und Filterbasis.

Spring4Shell -Verwundbarkeit

Als jede andere Software kann der Frühling einige Schwachstellen haben. Einer von ihnen (CVE-2022-22965) wurde "Spring4shell" genannt, ähnlich wie Log4shell.[25]

Siehe auch

Verweise

  1. ^ https://github.com/spring-projects/spring-framework/releases/v5.3.19.
  2. ^ "Spring Framework 1.0 Finale veröffentlicht". Offizieller Spring Framework -Blog. 24. März 2014. Abgerufen 1. März 2021.
  3. ^ Jolt -Gewinner 2006
  4. ^ "Jax Innovation Award Gewinner 2006". Archiviert von das Original am 2009-08-17. Abgerufen 2009-08-12.
  5. ^ "Spring Framework 3.2.5 veröffentlicht". Offizielle Spring -Website. 7. November 2013. Abgerufen 16. Oktober 2016.
  6. ^ "Ankündigung von Spring Framework 4.0 Ga Release". Spring Blog. 12. Dezember 2013.
  7. ^ "Spring Boot V1.0.0.Release". github.com.
  8. ^ "Spring Framework 4.2 geht Ga". Spring Blog. 31. Juli 2015.
  9. ^ a b "Spring Framework 4.2 geht Ga". Spring Blog.
  10. ^ "Upgrade auf Spring Framework 5.x". github.com.
  11. ^ "Reaktive Feder". Spring Blog. 9. Februar 2016.
  12. ^ Spring Framework -Dokumentation für den Kernbehälter
  13. ^ Was ist der Unterschied zwischen der Abhängigkeits- und Abhängigkeitsinjektion - Spring Forum. Forum.springource.org (2009-10-28). Abgerufen am 2013-11-24.
  14. ^ Frühling gegen EJB3
  15. ^ "Pitchfork FAQ". Abgerufen 2006-06-06.
  16. ^ Feder AOP XML -Konfiguration
  17. ^ Aspektj Annotationskonfiguration
  18. ^ Hibernate gegen Frühling
  19. ^ "Springdaten JPA zur Abstraktion von Abfragen". Abgerufen 2018-02-06.
  20. ^ Einführung in den Frühlingsrahmen
  21. ^ Johnson, Experte Eins-zu-Eins-J2EE-Design und -entwicklung, Ch. 12. et al.
  22. ^ Muster der Enterprise -Anwendungsarchitektur: Front -Controller
  23. ^ "Federschuh". Spring.io.
  24. ^ "Über Spring Stiefel". Abgerufen 2020-03-18.
  25. ^ "Spring4Shell: Kritische Verwundbarkeit im Frühjahr - Kaspersky Offizieller Blog".

Literaturverzeichnis

  • Mak, Gary (1. September 2010). Frühlingsrezepte: Ein Problemlösungsansatz (Zweite Ausgabe). Apress. p. 1104. ISBN 978-1-4302-2499-0.
  • Walls, Craig (Oktober 2018). Frühling in Aktion (Fünfter Aufl.). Manning. p. 520. ISBN 9781617294945.
  • Johnson, Rod; Höller, Jürgen; Arendsen, Ale; Risberg, Thomas; Sampaleanu, Colin (8. Juli 2005). Professionelle Java -Entwicklung mit dem Frühlingsrahmen (First Ed.). Wrox Press. p. 672. ISBN 0-7645-7483-3.
  • Harrop, Rob; Machacek, Januar (31. Januar 2005). Pro Spring (First Ed.). Apress. p. 832. ISBN 1-59059-461-4.
  • Johnson, Rod; Jürgen, Höller (23. Oktober 2002). J2EE -Entwicklung ohne EJB (First Ed.). Wrox Press. p. 768. ISBN 0-7645-5831-5.
  • Johnson, Rod (Oktober 2002). Experten-Einzel-J2EE-Design und -entwicklung (First Ed.). Wrox Press. p.750. ISBN 0-7645-4385-7.
  • Pollack, Mark; Gierke, Oliver; Risberg, Thomas; Brisbin, Jon; Hunger, Michael (31. Oktober 2012). Federdaten (First Ed.). O'Reilly. p. 316. ISBN 978-1449323950.
  • Sarin, Ashish (27. Juni 2016). Erste Schritte mit Spring Framework (Dritter Aufl.). Selbst veröffentlicht. p. 626. ISBN 978-1534985087.
  • Long, Josh (27. August 2013). Frühlingsgerüst Liveselessons (First Ed.). Addison-Wesley Professional. S. 4+ Stunden. ISBN 978-0-13-346307-1.

Externe Links