Wenn wir eine Spring-Boot-Anwendung erstellen, versehen wir sie mit @SpringBootApplication
Anmerkungen. Diese Annotation schließt viele andere notwendige Annotationen ab, damit die Anwendung funktioniert. Eine solche Anmerkung ist die @ComponentScan
Anmerkung. Diese Anmerkung weist Spring an, nach Spring-Komponenten zu suchen und die auszuführende Anwendung zu konfigurieren.
Ihre Anwendungsklasse muss ganz oben in Ihrer Pakethierarchie stehen, damit Spring Unterpakete scannen und die anderen erforderlichen Komponenten herausfinden kann.
package com.test.spring.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Das folgende Code-Snippet funktioniert, da sich das Controller-Paket unter dem com.test.spring.boot
Paket befindet
package com.test.spring.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HomeController {
@RequestMapping("/")
public String home(){
return "Hello World!";
}
}
Das folgende Code-Snippet funktioniert NICHT, da sich das Controller-Paket NICHT unter dem com.test.spring.boot
Paket befindet
package com.test.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HomeController {
@RequestMapping("/")
public String home(){
return "Hello World!";
}
}
Aus der Spring Boot-Dokumentation:
Viele Frühlings - Boot - Entwickler haben immer ihre Hauptklasse kommentierten mit @Configuration
, @EnableAutoConfiguration
und @ComponentScan
. Da diese Anmerkungen so häufig zusammen verwendet werden (insbesondere wenn Sie die oben genannten Best Practices befolgen), bietet Spring Boot eine bequeme @SpringBootApplication
Alternative.
Die @SpringBootApplication
Annotation entspricht der Verwendung
@Configuration
, @EnableAutoConfiguration
und @ComponentScan
mit ihren Standardattributen