/ / @SpringBootApplication nello stesso pacchetto? - java, spring, boot-spring

@SpringBootApplication nello stesso pacchetto? - java, primavera, avvio a molla

Ho scritto un'app basata su Spring Boot, ma funzionaquando metto tutta la classe (modello, contoller che ha annotato con @restController) nello stesso pacchetto di dove esiste SpringBoot. La mia domanda è perché queste classi devono essere nello stesso pacchetto?

questa è l'app di avvio a molla annotata:

@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
} }

Questo è il resto del controller:

@RestController
public class PersonController {

@RequestMapping("/Hello")
public String syaHello(@RequestParam(value = "name", defaultValue = "World") String name) {
return "Hello " + name;
} }

risposte:

3 per risposta № 1

Perché questo è il comportamento predefinito di @SpringBootApplication annotazione. Più correttamente, la scansione dei componenti rileva tutte le configurazioni e i componenti del pacchetto e tutti i sottopacchetti della classe con l'annotazione. Se vuoi avere le tue classi in altri pacchetti, allora puoi specificare quei pacchetti o classi con i pacchetti come attributi nell'annotazione:

@SpringBootApplication(scanBasePackageClasses = {OneClass.class, AnotherClass.class})

Spring analizzerà quindi i pacchetti e i pacchetti secondari delle classi OneClass e AnotherClass.