Heim Java JavaBase Was ist der Unterschied zwischen @autowired- und @resource-Annotationen?

Was ist der Unterschied zwischen @autowired- und @resource-Annotationen?

Nov 09, 2020 am 10:35 AM
@autowired java Anmerkung

Unterschiede: 1. Die Annotation @Autowired wird von Spring bereitgestellt und nur gemäß byType eingefügt. Die Annotation @resource wird von J2EE bereitgestellt und standardmäßig automatisch von byName eingefügt. 2. @Autowired wird standardmäßig nach Typ zusammengestellt, und @Resource wird standardmäßig nach Name zusammengestellt.

Was ist der Unterschied zwischen @autowired- und @resource-Annotationen?

Verwandte Empfehlungen: „Java Video Tutorial

Spring unterstützt nicht nur seine eigenen @Autowired-Anmerkungen, sondern auch mehrere in der JSR-250-Spezifikation definierte Anmerkungen. Beispiel: @Resource, @PostConstruct und @PreDestroy

1, @Autowired

werden von Spring bereitgestellt und nur gemäß byType

2 injiziert, @Resource

werden von J2EE bereitgestellt und sind es standardmäßig automatisch von byName eingefügt

@ Die Ressource hat zwei wichtige Attribute: Name und Typ

Spring analysiert das Namensattribut der @Resource-Annotation in den Namen der Bean und das Typattribut in den Typ der Bean. Wenn Sie also das Namensattribut verwenden, wird die automatische Injektionsstrategie byName verwendet, und wenn das Typattribut verwendet wird, wird die automatische Injektionsstrategie byType verwendet. Wenn weder das Namens- noch das Typattribut angegeben sind, wird die automatische Injektionsstrategie byName über den Reflexionsmechanismus verwendet.

@Ressourcenassembly-Reihenfolge:

(1) Wenn Name und Typ gleichzeitig angegeben werden, wird die einzige passende Bean aus dem Spring-Kontext für die Assemblierung gefunden. Wenn sie nicht gefunden wird, wird eine Ausnahme ausgelöst

(2 ) Wenn der Name angegeben ist, suchen Sie die Bean mit dem passenden Namen (ID) aus dem Spring-Kontext für die Assembly. Wenn sie nicht gefunden wird, wird eine Ausnahme ausgelöst. (3) Wenn der Typ angegeben ist, wird dies nur die Bean mit dem passenden Typ sein Wenn es nicht gefunden wird, wird eine Ausnahme ausgelöst. Wenn mehr als eine Ausnahme gefunden wird, wird eine Ausnahme ausgelöst.

automatisch in der byName-Methode durchgeführt. Wenn es keine Übereinstimmung gibt, wird für die Übereinstimmung auf einen primitiven Typ zurückgegriffen und bei einer Übereinstimmung automatisch verdrahtet.

Die Funktion von @Resource entspricht @Autowired, außer dass @Autowired automatisch entsprechend byType eingefügt wird.

3. Nutzungsunterschiede

(1) Sowohl @Autowired als auch @Resource können zum Zusammenstellen von Bohnen verwendet werden, und beide können auf

Felder

oder Setter-Methoden geschrieben werden (2)@Autowired wird zusammengebaut standardmäßig nach Typ

, standardmäßig muss das abhängige Objekt vorhanden sein. Wenn Sie

Nullwerte zulassen möchten , können Sie sein erforderliches Attribut auf false setzen. Wenn Sie die Namensassemblierung verwenden möchten, können Sie sie in Verbindung mit der @Qualifier-Annotation verwenden. (3) @Ressource

,

wird standardmäßig nach dem Namen zusammengestellt. Der Name kann über das Name-Attribut angegeben werden, wenn die Anmerkung in das -Feld geschrieben wird , übernimmt standardmäßig den Feldnamen. Führen Sie eine Namenssuche durch. Wenn die Annotation in die Setter-Methode geschrieben wird, wird der Attributname standardmäßig für die Assemblierung verwendet. Wenn keine Bohne findet, die dem Namen entspricht, wird entsprechend der Sorte zusammengestellt . Es ist jedoch zu beachten, dass bei Angabe des Namensattributs dieser nur nach dem Namen zusammengesetzt wird. Es wird empfohlen, die Annotation @Resource für das Feld zu verwenden, sodass keine Setter-Methode geschrieben werden muss. Diese Annotation gehört zu J2EE, wodurch die Kopplung mit Spring verringert wird.

@Ressourcenannotation

Was ist der Unterschied zwischen @autowired- und @resource-Annotationen?Weitere Kenntnisse zum Thema Programmierung finden Sie unter:
Programmierunterricht

! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen @autowired- und @resource-Annotationen?. 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
1506
276
Lautstärketasten auf der Tastatur funktioniert nicht Lautstärketasten auf der Tastatur funktioniert nicht Aug 05, 2025 pm 01:54 PM

Zunächst checkifthefnkeysettingIssinterferingbyingbothThevolumeKeyaloneAndfn VolumeKey, thentogglefnlockwithfn EscifAvailable

Edge PDF -Viewer funktioniert nicht Edge PDF -Viewer funktioniert nicht Aug 07, 2025 pm 04:36 PM

TestthepdfinanotherapptodetermineeiftheisueiswithTheFileoredge.2.Enablethebuilt-InpdfviewerByTurningOff "immerOpenpdffileSexTternal" und "DownloadPdffffiles" Inedgesetings

Gehen Sie mit gutem Beispielionieren einer Subprozesse aus Gehen Sie mit gutem Beispielionieren einer Subprozesse aus Aug 06, 2025 am 09:05 AM

Führen Sie den untergeordneten Prozess mit dem Betriebssystem/EXEC -Paket aus, erstellen Sie den Befehl über exec.Command, führen Sie ihn jedoch nicht sofort aus. 2. Führen Sie den Befehl mit .output () aus und fangen Sie Stdout an. Wenn der Exit-Code ungleich Null ist, return exec.exiterror; 3. Verwenden Sie .Start (), um den Prozess ohne Blockierung zu starten, mit .stdoutpipe () in Echtzeit aus der Ausgabe von Ausgang zu streamen; V. 5. Exec.EexitEerror muss verarbeitet werden, um den Ausgangscode und den Stderr des fehlgeschlagenen Befehls zu erhalten, um Zombie -Prozesse zu vermeiden.

Können Sie Methodenüberladen und Methoden in Java erklären? Können Sie Methodenüberladen und Methoden in Java erklären? Aug 06, 2025 am 07:41 AM

Methodenüberladung und Methodenüberladung sind zwei Mechanismen zur Implementierung des Polymorphismus in Java. 1. Die Methodenüberlastung erfolgt in derselben Klasse. Es erfordert denselben Methodennamen, jedoch unterschiedliche Parameterliste (Nummer, Typ oder Reihenfolge der Parameter), die zum Kompilieren des Zeitpolymorphismus gehört. Der Rückgabetyp kann unterschiedlich sein, kann aber nicht allein durch den Rückgabetyp überlastet werden. Es kann unterschiedliche Zugriffsmodifikatoren und Ausnahmegerklärungen geben. 2. Die Umschreibung der Methode tritt in der Erbschaftsbeziehung auf. Die Unterklasse bietet die spezifische Implementierung der vorhandenen Methoden der übergeordneten Klasse. Es erfordert die gleiche Methodensignatur und der Rückgabetyp ist kompatibel. Der Zugangsmodifikator kann nicht strenger sein. Es gehört zum Laufzeitpolymorphismus. Die Instanzmethode muss verwendet werden und das richtige Umschreiben kann durch die @Override -Annotation sichergestellt werden. Zusammen verbessern die beiden die Code -Lesbarkeit und Skalierbarkeit.

Optimierung verschachtelter Forach -Schleifen für komplexe Datenstrukturen Optimierung verschachtelter Forach -Schleifen für komplexe Datenstrukturen Aug 06, 2025 pm 12:53 PM

Um verschachtelte für Schleifen zu optimieren, sollten zuerst redundante Iterationen vermieden werden, und die zeitliche Komplexität kann von O (N × m) auf O (n m) reduziert werden. Zweitens, wenn die Struktur nicht wirklich hierarchisch ist, sollten die Daten mithilfe von Methoden wie SelectMany abgeflacht werden. Drittens herausspringen oder unnötige Verarbeitung durch bedingte Beurteilung überspringen; Viertens wählen Sie geeignete Datenstrukturen wie Wörterbuch- oder Hash -Mengen aus, um die Suchffizienz zu verbessern. Fünftens kann eine Parallelisierung mit Vorsicht verwendet werden, wenn die Operationen unabhängig und zeitaufwändig sind. Sechstens, um eine komplexe Logik in unabhängige Methoden oder Abfragen zu extrahieren, um die Lesbarkeit und Wartbarkeit zu verbessern. Der Kern der Optimierung besteht darin, die Komplexität zu verringern, Daten vernünftig zu organisieren und immer die Notwendigkeit des Verschachtelns zu bewerten und letztendlich einen effizienten, klaren und erweiterbaren Code zu erreichen.

Bereitstellung einer Java -Anwendung in Kubernetes mit Docker Bereitstellung einer Java -Anwendung in Kubernetes mit Docker Aug 08, 2025 pm 02:45 PM

Containerisierte Java-Anwendung: Erstellen Sie eine Dockerfile, verwenden Sie ein grundlegendes Bild wie Eclipse-Temurin: 17-Jre-Alpine, kopieren Sie die JAR-Datei und definieren Sie den Startbefehl, erstellen Sie das Bild über Dockerbuild und führen Sie lokal mit Dockerun aus. 2. Drücken Sie das Bild in die Containerregistrierung: Verwenden Sie Dockertag, um das Bild zu markieren und zu Dockerhub und anderen Registern zu drücken. Sie müssen sich zuerst bei DockerLogin anmelden. 3.. Bereitstellen in Kubernetes: Schreiben Sie die Bereitstellung. Yaml, um die Bereitstellung zu definieren, die Anzahl der Replikate, Containerbilder und Ressourcenbeschränkungen festlegen und den Dienst schreiben.yaml zum Erstellen zu erstellen

Effektive Strategien für die Handhabung von Java -Ausnahmen Effektive Strategien für die Handhabung von Java -Ausnahmen Aug 05, 2025 pm 02:44 PM

UsespecificexceptionssinsteadofgenericonestohandleFerferenterErrorConditions-AppropheadavoidmaskinguninteredErrors.2.NeverignoreCaughtexceptions; immer logorre-throwthem und documentintentionalignes.3.ValidinputSearly und FasteFastemBythem

Erkundung der Niedriglatenzfunktionen von Java Erkundung der Niedriglatenzfunktionen von Java Aug 05, 2025 pm 03:59 PM

Javacanachievelow-LatencyPerformanceInapplicationslikeHigh-Frequencytradingandreal-TimeGamingByAddringKeyCalenChaldensPecificoptimizationtechniques.1.Uselow-PauseGAGECOLLECTORTORTORSCHAUSZGCORSHENANTOAHTOMIMIMEGCCOLLECOLLECTORTORSUCTOPLYPOOBTOOBYOHTOMIMIMEGCCOLLAYS.

See all articles