wake-up-neo.net

wofür werden @Repository und @Autowired verwendet? (Frühling)

Ich lerne Java seit 3 ​​Monaten und manchmal Kann ich den Verwendungszweck von etwas nicht verstehen.

ein Thema war Abhängigkeitsinjektion und Frühlingsbohnen, die ich schließlich herausfand =) 

jetzt habe ich mich mit den beiden Anmerkungen @Autowired und @Repository verwechselt. First Was bedeutet Autowiring? dann Warum sollte ich sie verwenden und was ist der Unterschied zwischen der Verwendung und der Nichtbenutzung?

Auch heute habe ich versucht, den Hibernate-Modus in einem Frühjahr-MVC-Projekt zu verwenden, und ich musste nach ungefähr 15 JAR-Dateien (wegen nicht gefundenen Fehlern in der Klasse) suchen, da die Abhängigkeiten der anderen JAR-Dateien im Projekt verwendet wurden. musste das so sein? Dies macht das Erlernen von Java für Anfänger sehr schwierig

vielen Dank...

16
mehmet6parmak

@Repository ist eine Annotation, die die bestimmte Klasse als Datenzugriffsobjekt kennzeichnet und damit ihre Rolle klarstellt. Andere Marker derselben Kategorie sind @Service und @Controller

@Autowired ist eine Anmerkung mit einer völlig anderen Bedeutung: Sie weist den DI-Container im Wesentlichen an, eine Abhängigkeit einzubringen. Mehr Infos unter http://apollo89.com/Java/spring-framework-2.5.3/api/org/springframework/beans/factory/annotation/Autowired.html
Bearbeiten Weitere Informationen unter Tutorialpunkt
oder docs.spring.io

32
Bogdan

Beide Anmerkungen dienen unterschiedlichen Zwecken.

@Autowired: Dies ist das gleiche wie <bean="xyz" autowire="byType">, das Sie in der Konfigurationsdatei definieren. Die mit @Autowired annotierte Referenzvariable (Abhängigkeit) wird vom Spring-Container als übereinstimmende @Bean in @Configuration-Klasse eingefügt.
Außerdem werden die mit @Component, @Service, @Repository annotierten Klassen auch als Beans betrachtet, sodass ihre Objekte in die entsprechenden Abhängigkeiten eingefügt werden. Spring Container scannt die Beans in den Klassen, die Sie für "Component-Scan" oder @ComponentScan ("xyz") angegeben haben.

@Repository: Dies ist auch die Anmerkung eines Frühlings-Frameworks. Wenn Sie eine Klasse mit @Repository kommentieren, versteht Spring Container, dass es sich um eine DAO-Klasse handelt, und übersetzt alle ungeprüften Ausnahmen (die von DAO-Methoden ausgelöst werden) in Spring DataAccessException. Die DAO-Klasse ist die Klasse, in die Sie Methoden schreiben, um Operationen über db auszuführen.

5
Arun Raaj

@Autowired und @Repository sind zwei sehr unterschiedliche Konzepte. 1. @ Repository: Definiert eine Klasse als Repository. Im Allgemeinen können Sie einfach @Component verwenden, aber um genau zu definieren, gibt es 3 weitere Anmerkungen Controller, Service und Repository. Meistens 2 Vorteile: 1.Wenn Sie in servlet.xml definiert haben (Kontext: Komponentenscan), um das definierte Paket zu scannen und das eigene Paket durch Spring zu finden. 2 Weitere Vorteile, die Sie durch die Übersetzung von Datenbankzugriffsfehlern erzielen können, ist hauptsächlich für die Verwendung mit Klassen definiert, in denen Sie entweder mit Hibernate oder mit Jdbc eine Verbindung zur Datenbank herstellen.

@Autowired: Abhängigkeiten zur Laufzeit durch den Frühling einzuführen, bedeutet in einer Klasse, ein Objekt automatisch zu aktivieren und zu verwenden, sodass diese Bean automatisch erstellt wird, ohne in der XML-Datei definiert zu werden

0
Karan guptA