Heim > Java > javaLernprogramm > Hauptteil

Was sind die Wissenspunkte von SpringBoot-Annotationen?

WBOY
Freigeben: 2023-05-15 16:40:06
nach vorne
904 Leute haben es durchsucht

1. Liste der Anmerkungen

@SpringBootApplication: Enthält die Anmerkungen @ComponentScan, @Configuration und @EnableAutoConfiguration. Unter anderem ermöglicht @ComponentScan Spring Boot, die Konfigurationsklasse zu scannen und sie dem Programmkontext hinzuzufügen.

@Configuration entspricht der XML-Konfigurationsdatei von Spring; die Typsicherheit kann mit Java-Code überprüft werden.

@EnableAutoConfiguration automatische Konfiguration.

@ComponentScan-Komponentenscan kann einige Beans automatisch erkennen und zusammenstellen.

@Component kann mit CommandLineRunner verwendet werden, um einige grundlegende Aufgaben nach dem Programmstart auszuführen.

Die Annotation @RestController ist eine Sammlung von @Controller und @ResponseBody, was darauf hinweist, dass es sich um eine Controller-Bean handelt und der Rückgabewert der Funktion direkt in den HTTP-Antworttext eingefügt wird, bei dem es sich um einen Controller im REST-Stil handelt.

@Autowired automatischer Import.

@PathVariable ruft Parameter ab.

@JsonBackReference löst das Problem verschachtelter externer Links.

@RepositoryRestResourcepublic wird mit spring-boot-starter-data-rest verwendet.

2. Detaillierte Erläuterung der Anmerkungen

@SpringBootApplication: Deklariert, dass Spring Boot das erforderliche Programm automatisch konfiguriert. Diese Konfiguration entspricht den drei Konfigurationen @Configuration, @EnableAutoConfiguration und @ComponentScan.

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // dasselbe wie

@Configuration

@EnableAutoConfiguration

@ComponentScan public class Application {

public statisch void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

@ResponseBody: Gibt an, dass das Rückgabeergebnis dieser Methode direkt in den HTTP-Antworttext geschrieben wird. Wird normalerweise asynchron abgerufen. Wird verwendet, wenn Daten zum Erstellen von RESTful-APIs verwendet werden. Nach der Verwendung von @RequestMapping wird der Rückgabewert normalerweise als Sprungpfad analysiert. Nach dem Hinzufügen von @responsebody wird das Rückgabeergebnis nicht als Sprungpfad analysiert, sondern direkt in den HTTP-Antworttext geschrieben. Wenn Sie beispielsweise JSON-Daten asynchron abrufen und @responsebody hinzufügen, werden die JSON-Daten direkt zurückgegeben. Diese Annotation wird im Allgemeinen in Verbindung mit @RequestMapping verwendet. Beispielcode:

@RequestMapping(“/test”)@ResponseBodypublic String test(){ return „ok“;}

@Controller: Wird zum Definieren der Controller-Klasse verwendet. Im Frühjahrsprojekt ist der Controller für das Senden von Benutzern verantwortlich Die URL-Anfrage wird an die entsprechende Serviceschnittstelle (Serviceschicht) weitergeleitet. Im Allgemeinen befindet sich diese Annotation in der Klasse, und normalerweise muss die Methode von der Annotation @RequestMapping begleitet werden. Beispielcode:

@Controller@RequestMapping("/demoInfo") public class DemoController {

@Autowired private DemoInfoService demoInfoService;

@RequestMapping("/hello") public String hello(Map map){ System System .out.println("DemoController.hello()");

map.put("hello","from TemplateController.helloHtml"

);

//Wird die Vorlage hello.html oder hello.ftl verwenden zum Rendern der Anzeige.

return"/hello";

}

}

@RestController: wird zum Kommentieren von Steuerungsebenenkomponenten (z. B. Aktionen in Struts) verwendet, eine Sammlung von @ResponseBody und @Controller. Beispielcode:

import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController; @RestController@RequestMapping("/demoInfo2")publicclass DemoController2 {

@RequestMapping(" /test") public String test(){ return"ok";

}

}

@RequestMapping: Stellt Routing-Informationen bereit und ist für die Zuordnung von URLs zu bestimmten Funktionen im Controller verantwortlich.

@EnableAutoConfiguration: Automatische Spring Boot-Konfiguration (Autokonfiguration): Versuchen Sie, Ihre Spring-Anwendung automatisch basierend auf den von Ihnen hinzugefügten JAR-Abhängigkeiten zu konfigurieren. Wenn beispielsweise HSQLDB in Ihrem Klassenpfad vorhanden ist und Sie keine Datenbankverbindungs-Beans manuell konfiguriert haben, konfigurieren wir automatisch eine In-Memory-Datenbank. Sie können die Annotation @EnableAutoConfiguration oder @SpringBootApplication zu einer @Configuration-Klasse hinzufügen, um die automatische Konfiguration auszuwählen . Wenn Sie feststellen, dass bestimmte automatische Konfigurationsklassen angewendet werden, können Sie das Exclude-Attribut der Annotation @EnableAutoConfiguration verwenden, um diese zu deaktivieren.

@ComponentScan: Dies bedeutet, dass die Klasse automatisch erkannt und gescannt wird, wenn Klassen mit @ annotiert sind. Komponenten, @Controller, @Service usw. werden als Beans gescannt und registriert. Alle Spring-Komponenten, einschließlich @Configuration-Klassen, können automatisch erfasst werden. Wir verwenden häufig die @ComponentScan-Annotation, um nach Beans zu suchen und diese mit dem @Autowired-Annotation-Import zu kombinieren . Alle Spring-Komponenten können automatisch erfasst werden, einschließlich der @Configuration-Klasse, um nach Beans zu suchen und diese mit der @Autowired-Annotation zu importieren. Paket, in dem sich die Startup-Klasse befindet, mit @Service, @Repository usw. versehen.

@Configuration: Entspricht der herkömmlichen XML-Konfigurationsdatei. Wenn einige Bibliotheken von Drittanbietern XML-Dateien verwenden müssen, wird empfohlen, weiterhin die @Configuration-Klasse als Hauptkonfigurationsklasse des Projekts zu verwenden – Sie können die Annotation @ImportResource verwenden um die XML-Konfigurationsdatei zu laden.

@Import: Wird zum Importieren anderer Konfigurationsklassen verwendet.

@ImportResource: Wird zum Laden von XML-Konfigurationsdateien verwendet.

@Autowired: Abhängige Beans automatisch importieren

@Service: Wird im Allgemeinen zum Ändern von Komponenten der Serviceschicht verwendet.

@Repository: Mithilfe der @Repository-Annotation kann sichergestellt werden, dass DAO oder Repositorys eine Ausnahmeübersetzung bereitstellen Diese Annotation wird von ComponentScan erkannt und konfiguriert, und es ist nicht erforderlich, XML-Konfigurationselemente dafür bereitzustellen.

@Bean: Die mit @Bean gekennzeichnete Methode entspricht der in XML konfigurierten Bean.

@Value: Fügen Sie den Wert der von Spring Boot application.properties konfigurierten Eigenschaft ein. Beispielcode:

@Value(value = „#{message}“)private String-Nachricht

@Inject: Entspricht dem Standard-Attribut @Autowired, außer dass es kein erforderliches Attribut gibt;

@Component: Bezieht sich im Allgemeinen auf Komponenten Wenn Komponenten schwer zu klassifizieren sind, können wir diese Anmerkung verwenden, um sie zu markieren.

@Bean: Entspricht XML und wird über der Methode anstelle der Klasse platziert. Dies bedeutet, dass eine Bean generiert und zur Verwaltung an Spring übergeben wird.

@AutoWired: Abhängige Beans automatisch importieren. byType-Methode. Verwenden Sie die konfigurierten Beans, um die Assemblierung von Attributen und Methoden abzuschließen. Sie können Klassenmitgliedsvariablen, -methoden und -konstruktoren mit Anmerkungen versehen, um die automatische Assemblierung abzuschließen. Wenn (required=false) hinzugefügt wird, wird kein Fehler gemeldet, selbst wenn die Bean nicht gefunden werden kann.

@Qualifier: Wenn mehrere Beans desselben Typs vorhanden sind, können Sie zur Angabe @Qualifier("name") verwenden. Wird mit @Autowired verwendet. Der qualifizierte @Qualifier-Deskriptor ermöglicht nicht nur die Eingabe nach Namen, sondern bietet auch eine detailliertere Kontrolle über die Auswahl von Kandidaten. Die spezifische Verwendung ist wie folgt:

@Autowired@Qualifier(value = „demoInfoService“)private DemoInfoService demoInfoService;

@ Resource(name="name",type="type"): Wenn in Klammern kein Inhalt steht, wird standardmäßig byName verwendet. Machen Sie ähnliche Dinge mit @Autowired.

3. JPA-Anmerkungen

@Entity: @Table(name=""): Zeigt an, dass es sich um eine Entitätsklasse handelt. Diese beiden Anmerkungen werden im Allgemeinen in JPA verwendet und im Allgemeinen zusammen verwendet. Wenn jedoch der Tabellenname und der Name der Entitätsklasse identisch sind, kann @Table weggelassen werden

@MappedSuperClass: Wird für Entitäten verwendet, die als übergeordnete Klassen bestimmt sind. Unterklassen können die Eigenschaften der übergeordneten Klasse erben.

@NoRepositoryBean: Wird im Allgemeinen als Repository der übergeordneten Klasse verwendet. Mit dieser Annotation instanziiert Spring das Repository nicht.

@Spalte: Wenn der Feldname mit dem Spaltennamen übereinstimmt, kann er weggelassen werden.

@Id: Zeigt an, dass dieses Attribut der Primärschlüssel ist.

@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = „repair_seq“): Zeigt an, dass die Primärschlüsselgenerierungsstrategie eine Sequenz ist (kann Auto, IDENTITY, nativ usw. sein. Auto bedeutet, dass zwischen mehreren Datenbanken gewechselt werden kann). und der Name der angegebenen Sequenz ist „repair_seq“.

@SequenceGeneretor(name = „repair_seq“, sequenceName = „seq_repair“,allokationSize = 1): name ist der Name der Sequenz zur einfachen Verwendung, sequenceName ist der Sequenzname der Datenbank und die beiden Namen können konsistent sein.

@Transient: Zeigt an, dass dieses Attribut keine Zuordnung zu einem Feld in einer Datenbanktabelle ist und das ORM-Framework dieses Attribut ignoriert. Wenn es sich bei einem Attribut nicht um eine Feldzuordnung einer Datenbanktabelle handelt, muss es als @Transient markiert werden. Andernfalls verwendet das ORM-Framework standardmäßig die Annotation @Basic. @Basic(fetch=FetchType.LAZY): Das Tag kann die Lademethode von Entitätsattributen angeben

@JsonIgnore: Die Funktion besteht darin, einige Attribute in der Java-Bean während der JSON-Serialisierung zu ignorieren, was sowohl die Serialisierung als auch die Deserialisierung betrifft.

@JoinColumn(name="loginId"): Eins-zu-eins: ein Fremdschlüssel in dieser Tabelle, der auf eine andere Tabelle verweist. Eins-zu-viele: Ein Fremdschlüssel aus einer anderen Tabelle, der auf diese Tabelle verweist.

@OneToOne, @OneToMany, @ManyToOne: entsprechen eins-zu-eins, eins-zu-viele und viele-zu-eins in der Konfigurationsdatei für den Ruhezustand.

4. SpringMVC-bezogene Hinweise

@RequestMapping: @RequestMapping("/path") bedeutet, dass der Controller alle „/path“-URL-Anfragen verarbeitet. RequestMapping ist eine Annotation zur Verarbeitung der Anforderungsadressenzuordnung, die für Klassen oder Methoden verwendet werden kann. Bei einer Klasse bedeutet dies, dass alle Methoden in der Klasse, die auf Anfragen antworten, diese Adresse als übergeordneten Pfad verwenden. Diese Annotation hat sechs Attribute:

params: Gibt an, dass die Anfrage bestimmte Parameterwerte enthalten muss, bevor sie von dieser Methode verarbeitet werden kann. Header: Die angegebene Anfrage muss bestimmte angegebene Headerwerte enthalten, damit diese Methode die Anfrage verarbeiten kann. Wert: Geben Sie die tatsächliche Adresse der Anforderung an. Die angegebene Adresse kann ein URI sein. Vorlagenmodus-Methode: Geben Sie den Methodentyp der Anforderung an, GET, POST, PUT, DELETE usw. Verbraucher: Geben Sie den Inhaltstyp der Übermittlung an (Content-Type). ) zur Verarbeitung der Anfrage, z. B. application/json, text/html; erzeugt: Gibt den zurückzugebenden Inhaltstyp an. Er wird nur zurückgegeben, wenn der (Accept)-Typ im Anfrageheader den angegebenen Typ

@RequestParam enthält : Wird vor den Parametern der Methode verwendet. @RequestParamString a =request.getParameter("a").

@PathVariable: Pfadvariable. Zum Beispiel:

RequestMapping("user/get/mac/{macAddress}") public String getByMacAddress(@PathVariable String macAddress){ //etwas tun;}

Die Parameter müssen mit den Namen in geschweiften Klammern identisch sein.

5. Globale Ausnahmebehandlung

@ControllerAdvice: Enthält @Component. gescannt werden kann. Behandeln Sie Ausnahmen einheitlich.

@ExceptionHandler (Exception.class): Wird für eine Methode verwendet, um anzugeben, dass die folgende Methode ausgeführt wird, wenn diese Ausnahme auftritt.

Das obige ist der detaillierte Inhalt vonWas sind die Wissenspunkte von SpringBoot-Annotationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage