国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Java javaLernprogramm Feder-IOC-Container

Feder-IOC-Container

Aug 19, 2017 pm 01:46 PM
spring Container

1. Einführung in das Spring Framework

Was ist Spring?

Spring ist ein Open-Source-Framework für die leichte Anwendungsentwicklung um die Anwendungsentwicklung auf Unternehmensebene zu vereinfachen und Eingriffe zu reduzieren

Die von Spring bereitgestellten IOC- und AOP-Anwendungen k?nnen die Kopplung von Komponenten, also die Entkopplung, minimieren, was zukünftige Wartung und Upgrades des Systems erleichtert

Spring bietet eine Gesamtl?sung für das System. Entwickler k?nnen au?erdem Anwendungen mit Frameworks und Technologien von Drittanbietern integrieren und frei w?hlen, welche Technologie sie für die Entwicklung verwenden m?chten

2. Container- und Bean-Verwaltung

Einführung in Spring Container

Im Spring werden alle Java-Klassen und JavaBeans als Beans verwaltet und angewendet durch den Container

Der Spring-Container implementiert IOC- und AOP-Mechanismen, die die Erstellung von Bean-Objekten und die Entkopplung zwischen Bean-Objekten vereinfachen k?nnen

Der Spring-Container verfügt über BeanFactory- und ApplicationContext-Typen

(Was ist JavaBean: ein einfaches und standardisiertes Java-Objekt; wann Sie Spring verwenden müssen: Sie k?nnen es verwenden, wenn Sie JavaBean-Objekte verwalten müssen.

Instanziierung von Spring-Containern

ApplicationContext erbt von der BeanFactory-Schnittstelle und verfügt über mehr Methoden auf Unternehmensebene. Es wird empfohlen, diesen Typ wie folgt zu verwenden:

//Laden Sie die Instanziierung der Konfigurationsdatei im Dateisystem

String conf = "C:applicationContext.xml";

ApplicationContext ac = new FileSystemXmlApplicationContext(conf);

/ / Laden Sie die Konfigurationsdatei unter der Projektklassenpfad

String conf = "applicationContext.xml";

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

Spring Die Verwendung von Containern

BeanFactory und ApplicationContext sind im Wesentlichen nur eine High-Level-Factory-Schnittstelle, die Bean-Definitionen und gegenseitige Abh?ngigkeiten verwaltet. über BeanFactory und ApplicationContext k?nnen wir auf die Bean-Definition zugreifen

Fügen Sie zun?chst die Bean-Definition in der Container-Konfigurationsdatei applicationContext.xml hinzu

Nachdem Sie die Containerobjekte BeanFactory und ApplicationContext erstellt haben, rufen Sie die Methode getBean() auf, um die Bean-Instanz [getBean("identifier")] zu erhalten

Bean-Instanziierung

Es gibt drei M?glichkeiten für den Spring-Container, Bean-Objekte zu erstellen:

-Verwenden Sie den Konstruktor, um zu instanziieren

(Das ID- oder Namensattribut wird verwendet, um den Bean-Namen anzugeben und um das Bean-Objekt von Spring zu finden. Die Klasse wird verwendet, um den Bean-Typ anzugeben und ruft automatisch den zu erstellenden parameterlosen Konstruktor auf das Objekt)

-Verwenden Sie die statische Factory-Methode zum Instanziieren

(Das id-Attribut wird zur Angabe des Bean-Namens verwendet, das class-Attribut wird zur Angabe des Factory-Typs und das Das Methodenattribut wird verwendet, um die Methode zum Erstellen von Bean-Objekten in der Factory anzugeben. Methoden, die mit statischen Methoden dekoriert werden müssen)

-Verwenden Sie die Instanz-Factory-Methode, um zu instanziieren

(id wird verwendet, um den Bean-Namen anzugeben, das Factory-Bean-Attribut wird verwendet, um das Factory-Bean-Objekt anzugeben, und das Factory-Method-Attribut ist wird verwendet, um die Methode zum Erstellen des Bean-Objekts in der Fabrik anzugeben.)

(Teilen Sie Spring die Regeln für die Objekterstellung mit. Spring hilft Ihnen beim Erstellen von Objekten; basierend auf Konfiguration und Standardregeln, wodurch das Schreiben von Code reduziert wird)

Ban-Benennung

Bean-Name:

Im Spring-Container muss jede Bean einen Namen haben ( d. h. Bezeichner). Der Name kann mit dem id- oder name-Attribut des -Elements angegeben werden. Das id-Attribut ist kleiner als der name. Strict, Eindeutigkeit ist erforderlich, Sonderzeichen wie ?/“ sind nicht zul?ssig

Bean-Alias ??:

ist ein definiertes Bean. Um eine weitere Namensreferenz hinzuzufügen, k?nnen Sie

Bean-Bereich:

Spring-Container in Beim Instanziieren einer Bean , Sie k?nnen Bean-Objekte mit den folgenden Bereichen

1 Singleton-Bereich


in jeder Spring IOC-Bean-Definition erstellen Der Container entspricht einer Objektinstanz.
konfiguriert die Instanz:
Oder



2 ??>

Eine Bean-Definition entspricht mehreren Objektinstanzen

Konfigurationsinstanz:

oder




3. Anfrage Anfrage bedeutet, dass für jede HTTP-Anfrage eine neue Bean generiert wird und die Bean nur innerhalb der aktuellen HTTP-Anfrage gültig ist
Wann Bei Verwendung von Anfrage, Sitzung und globaler Sitzung müssen Sie zun?chst die folgende Konfiguration im Web vornehmen. Fügen Sie einfach den folgenden ContextListener zur XML-Deklarationsdatei web.xml der Webanwendung hinzu:
... org.springframework.web.context.request.RequestContextListener... ein Webcontainer vor Servlet2.4 ist, müssen Sie eine Implementierung von javax.servlet.Filter verwenden:
.. requestContextFilterorg.springframework.web.filter.RequestContextFilter requestContextFilter pattern>/*...< ;/web-app>

Dann k?nnen Sie den Geltungsbereich des Beans konfigurieren:





4. Sitzung



Die Sitzung Geltungsbereich bedeutet, dass für jede HTTP-Anfrage eine neue Bean generiert wird und die Bean nur w?hrend der aktuellen HTTP-Anfrage generiert wird. Gültig innerhalb der Sitzung (in einer HTTPSession entspricht eine Bean-Definition einer Instanz, nur in der Webumgebung).
Konfigurationsinstanz: Die Voraussetzung für die Anforderungskonfigurationsinstanz ist dieselbe. Nachdem Sie die Web-Startup-Datei konfiguriert haben, k?nnen Sie sie wie folgt konfigurieren:

5. globale Sitzung



In einer globalen HTTP-Sitzung entspricht eine Bean-Definition zu einer Instanz, die nur in Portlet-basierten Webanwendungen sinnvoll ist. Die Portlet-Spezifikation definiert das Konzept der globalen Sitzung
Konfigurationsinstanz: und Die Pr?misse der Anforderungskonfigurationsinstanz ist dieselbe , k?nnen Sie es wie folgt konfigurieren: (Der obige Bean-Bereich kann über das durch definierte Bereichsattribut angegeben werden)


Beans Lebenszyklus-Rückruf

Geben Sie die Initialisierungs-Rückrufmethode an:

Gibt die Zerst?rungsrückrufmethode an, die nur für Beans im Singleton-Modus gilt:

Das Attribut ?default-init-method“ im Element der obersten Ebene kann die Initialisierungsrückrufmethode für alle angeben

< Beans default- init-method = "init">

 

Das Attribut default-destroy-method im obersten Element kann die Zerst?rungsrückrufmethode für alle angeben

 

Verz?gerte Bean-Instanziierung

Das in ApplicationContext implementierte Standardverhalten besteht darin, alle Singleton-Beans beim Start im Voraus zu instanziieren

Wenn Sie nicht zulassen m?chten, dass ein Singleton-Bean bei der Initialisierung des ApplicationContext im Voraus instanziiert wird, k?nnen Sie das Attribut lazy-init = ?true“ des -Elements verwenden, um

Eine lazy-initialisierte Bean wird bei der ersten Verwendung instanziiert

im -Element der obersten Ebene. Das Attribut ?default-lazy-init“ im Container kann Lazy-Instanziierungsfunktionen für alle angeben und geben Sie Bean-Abh?ngigkeiten an

Wenn eine Bean eine Abh?ngigkeit von einer anderen Bean hat, k?nnen Sie das depend-on-Attribut des -Elements verwenden, um

Wenn eine Bean von mehreren abh?ngig ist. Wenn eine Bean eine Abh?ngigkeitsbeziehung aufweist, kann das Attribut ?dependents-on“ mehrere Bean-Namen angeben, die durch Kommas getrennt sind

3. Container-IOC-Anwendung

IOC-Konzept

Der vollst?ndige Name von IOC ist Inversion of Control, übersetzt als Umkehrung der Kontrolle;

IOC bezieht sich auf die Umkehrung der Erfassungsmethode von Objekte im Programm, von der ursprünglichen neuen Methode bis zur Erstellung und Injektion durch ein Drittanbieter-Framework. Frameworks von Drittanbietern geben im Allgemeinen durch Konfiguration an, welche spezifische Implementierung eingefügt werden soll, wodurch die Kopplung zwischen Objekten verringert wird

IOC kann in zwei Typen unterteilt werden: Abh?ngigkeitsinjektion DI und Abh?ngigkeitssuche gem?? unterschiedlichen Implementierungsmethoden

Spring Container verwendet DI, um die IOC-Steuerung zu implementieren. IOC ist die Grundlage und der Kern des Spring Containers

DI-Konzept

Der vollst?ndige Name von DI ist Dependency Injection übersetzt Abh?ngigkeiten einfügen

Das Grundprinzip von DI besteht darin, Objekte, die zusammenarbeiten und Beziehungen haben, über Konstruktorparameter oder Methodenparameter zu verbinden. Daher besteht die Aufgabe des Containers darin, diese Abh?ngigkeiten beim Erstellen einer Bean einzufügen

IOC ist eine Idee, und DI ist der wichtigste technische Weg, IOC zu realisieren

DI verfügt über zwei Hauptinjektionsmethoden, n?mlich Setter-Injektion und Konstruktor-Injektion

Setter-Injektion

Nachdem Sie eine Bean durch Aufrufen des Parameterlosen Konstruktors oder der Parameterlosen statischen Factory-Methode und durch Aufrufen der Setter-Methode der Bean instanziiert haben, k?nnen Sie eine Setter-Injektion erreichen

?ffentliche Klasse JDBCDataSource{ privater String-Treiber;

public void setDriver(String-Treiber){

try{

Klasse .forName(Treiber );

 this.driver = drivers;

 }catch(Exception e){

  throw new RuntimeException(e);

}

    }

    //Anderer Code....

           

Konfigurieren Sie in der Container-XML-Konfiguration die Injektionsparameter

 

 

 

 

Konstruktorinjektion

Konstruktorbasierte Injektion erfolgt durch Aufrufen eines Konstruktors mit Parametern. Wenn der Bean wird instanziiert, der Container führt den entsprechenden Konstruktor gem?? dem Parametertyp aus

public class OracleUserDAO implementiert UserDAO{

private JDBCDataSource dataSource;

Public OracleUserDAO(JDBCDataSource dataSource){

This.dataSource = dataSource;

}

//Anderer Code....

}

Injection durch Konstruktorparameterindex angeben

 

 

 

 

 < ;constructor-arg index = "0" ref = "dataSource"/>

Autowiring

Spring IOC Der Container kann die Zuordnung automatisch zusammenstellen (autowire). zwischen kooperierenden Beans kann Autowire für eine einzelne Bean festgelegt werden.

In der XML-Konfigurationsdatei k?nnen Sie das Autowire-Attribut im ; bean/>-Element zum Angeben der automatischen Assemblerregeln. Es gibt fünf Arten von Werten:

value ;

Der Attributwert ist byName:

Autowire basierend auf dem Eigenschaftsnamen. Diese Option überprüft den Container und findet anhand des Namens eine Bean, die genau mit der Eigenschaft übereinstimmt. und verknüpfen Sie es automatisch mit der Eigenschaft;

Der Attributwert ist byType:

Wenn sich im Container eine Bean mit demselben Typ wie das angegebene Attribut befindet, wird sie automatisch mit dem zusammengestellt attribute;

Der Attributwert ist Konstruktor:

?hnelt der byType-Methode, au?er dass er auf den Konstruktorparameter angewendet wird.

Der Attributwert ist autodetect:

Bestimmen Sie, ob der Konstruktor oder die byType-Methode für die automatische Erkennung durch die Bean-Klassen-Assembly verwendet werden soll. Wenn ein Standardkonstruktor gefunden wird, wird die byType-Methode Konfigurationsbeispiel verwendet:

 

Mit der obigen Konfiguration, Wenn es eine Setter-Methode gibt, die den UserDao-Typ in UserService empf?ngt, kann Spring das userDAO-Objekt automatisch darin einfügen

Das obige ist der detaillierte Inhalt vonFeder-IOC-Container. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Feb 01, 2024 pm 09:18 PM

Im Jahr 2023 ist die KI-Technologie zu einem hei?en Thema geworden und hat enorme Auswirkungen auf verschiedene Branchen, insbesondere im Programmierbereich. Die Bedeutung der KI-Technologie wird den Menschen zunehmend bewusst, und die Spring-Community bildet da keine Ausnahme. Mit der kontinuierlichen Weiterentwicklung der GenAI-Technologie (General Artificial Intelligence) ist es entscheidend und dringend geworden, die Erstellung von Anwendungen mit KI-Funktionen zu vereinfachen. Vor diesem Hintergrund entstand ?SpringAI“ mit dem Ziel, den Prozess der Entwicklung von KI-Funktionsanwendungen zu vereinfachen, ihn einfach und intuitiv zu gestalten und unn?tige Komplexit?t zu vermeiden. Durch ?SpringAI“ k?nnen Entwickler einfacher Anwendungen mit KI-Funktionen erstellen, wodurch diese einfacher zu verwenden und zu bedienen sind.

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Apr 28, 2024 am 11:46 AM

Als Branchenführer bietet Spring+AI durch seine leistungsstarke, flexible API und erweiterte Funktionen führende L?sungen für verschiedene Branchen. In diesem Thema werden wir uns mit den Anwendungsbeispielen von Spring+AI in verschiedenen Bereichen befassen. Jeder Fall wird zeigen, wie Spring+AI spezifische Anforderungen erfüllt, Ziele erreicht und diese LESSONSLEARNED auf ein breiteres Anwendungsspektrum ausdehnt. Ich hoffe, dieses Thema kann Sie dazu inspirieren, die unendlichen M?glichkeiten von Spring+AI tiefer zu verstehen und zu nutzen. Das Spring-Framework hat eine mehr als 20-j?hrige Geschichte im Bereich der Softwareentwicklung, und seit der Ver?ffentlichung der Spring Boot 1.0-Version sind 10 Jahre vergangen. Nun kann niemand diesen Frühling bestreiten

Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Jan 08, 2024 am 10:23 AM

So implementieren Sie programmgesteuerte Spring-Transaktionen: 1. Verwenden Sie TransactionCallback und TransactionCallbackWithoutResult; 4. Verwenden Sie TransactionTemplate in Kombination mit @Transactional;

AtomHub, das von Huawei, Inspur und anderen Einheiten gemeinsam geschaffene Open-Source-Containerspiegelungszentrum, gab bekannt, dass es offiziell für ?ffentliche Tests ge?ffnet ist und inl?ndische Dienste stabil herunterladen kann. AtomHub, das von Huawei, Inspur und anderen Einheiten gemeinsam geschaffene Open-Source-Containerspiegelungszentrum, gab bekannt, dass es offiziell für ?ffentliche Tests ge?ffnet ist und inl?ndische Dienste stabil herunterladen kann. Jan 02, 2024 pm 03:54 PM

Aus den offiziellen Nachrichten von Huawei geht hervor, dass die Open Atomic Developer Conference mit dem Thema ?Alles für Entwickler“ zwei Tage lang, vom 16. bis 17. Dezember, in Wuxi stattfand. Die Konferenz wurde von der Open Atomic Open Source Foundation, Huawei und geleitet Inspur, DaoCloud, Xieyun, Qingyun, Hurricane Engine sowie die OpenSDV Open Source Alliance, die openEuler-Community, die OpenCloudOS-Community und andere Mitgliedseinheiten, das AtomHub Trusted Mirror Center ist offiziell für ?ffentliche Tests ge?ffnet. AtomHub folgt den Konzepten der Co-Konstruktion, Co-Governance und Sharing und zielt darauf ab, Open-Source-Organisationen und Entwicklern ein neutrales, offenes und gemeinsam aufgebautes, vertrauenswürdiges Open-Source-Container-Spiegelzentrum zur Verfügung zu stellen. Angesichts der Instabilit?t und Unkontrollierbarkeit von Image-Warehouses wie DockerHub und anderen

So legen Sie die Transaktionsisolationsstufe im Frühjahr fest So legen Sie die Transaktionsisolationsstufe im Frühjahr fest Jan 26, 2024 pm 05:38 PM

So legen Sie die Transaktionsisolationsstufe in Spring fest: 1. Verwenden Sie die Annotation @Transactional. 3. Legen Sie sie in der Spring-Konfigurationsdatei fest. 4. Legen Sie sie in der Java-Konfigurationsklasse fest. Detaillierte Einführung: 1. Verwenden Sie die Annotation @Transactional, fügen Sie die Annotation @Transactional zu der Klasse oder Methode hinzu, die eine Transaktionsverwaltung erfordert, und legen Sie die Isolationsstufe im Attribut fest. 2. In der Spring-Konfigurationsdatei usw.

Detaillierte Erl?uterung der Bean-Erfassungsmethoden im Frühjahr Detaillierte Erl?uterung der Bean-Erfassungsmethoden im Frühjahr Dec 30, 2023 am 08:49 AM

Detaillierte Erl?uterung der Bean-Erfassungsmethode in Spring Im Spring-Framework ist die Bean-Erfassung ein sehr wichtiger Teil. In Anwendungen müssen wir h?ufig die Abh?ngigkeitsinjektion verwenden oder Bean-Instanzen dynamisch abrufen. In diesem Artikel wird detailliert beschrieben, wie Sie Beans im Frühjahr erhalten, und es werden spezifische Codebeispiele aufgeführt. Das Abrufen der Bean@Component-Annotation über die @Component-Annotation ist eine der am h?ufigsten verwendeten Annotationen im Spring-Framework. Wir k?nnen dies tun, indem wir @Compone zur Klasse hinzufügen

So konfigurieren Sie Dateien im Frühjahr So konfigurieren Sie Dateien im Frühjahr Jan 18, 2024 pm 03:53 PM

Schritte der Spring-Konfigurationsdatei: 1. XML-Konfigurationsdatei erstellen; 3. Datenquelle konfigurieren; 6. Abh?ngigkeiten konfigurieren; 9. Stellen Sie die Anwendung bereit. 10. Starten Sie die Anwendung. Detaillierte Einführung: 1. Erstellen Sie eine XML-Konfigurationsdatei und erstellen Sie eine XML-Datei im Ressourcenverzeichnis des Projekts. 2. Fügen Sie die erforderlichen Abh?ngigkeiten usw. hinzu.

Nutzungshandbuch für das Spring Security-Berechtigungskontroll-Framework Nutzungshandbuch für das Spring Security-Berechtigungskontroll-Framework Feb 18, 2024 pm 05:00 PM

In Back-End-Managementsystemen ist in der Regel eine Zugriffsberechtigungskontrolle erforderlich, um den Zugriff verschiedener Benutzer auf Schnittstellen einzuschr?nken. Fehlen einem Benutzer bestimmte Berechtigungen, kann er auf bestimmte Schnittstellen nicht zugreifen. In diesem Artikel wird das Waynboot-Mall-Projekt als Beispiel verwendet, um vorzustellen, wie g?ngige Back-End-Verwaltungssysteme das Berechtigungskontroll-Framework SpringSecurity einführen. Die Gliederung lautet wie folgt: waynboot-mall-Projektadresse: https://github.com/wayn111/waynboot-mall 1. Was ist SpringSecurity? SpringSecurity ist ein Open-Source-Projekt, das auf dem Spring-Framework basiert und darauf abzielt, leistungsstarke und flexible Sicherheit bereitzustellen für Java-Anwendungen.

See all articles