Saat kami membuat aplikasi boot Musim Semi, kami menganotasinya dengan @SpringBootApplication
anotasi. Anotasi ini 'merangkum' banyak anotasi lain yang diperlukan agar aplikasi dapat bekerja. Salah satu anotasi tersebut adalah @ComponentScan
anotasi. Anotasi ini memberi tahu Spring untuk mencari komponen Spring dan mengonfigurasi aplikasi untuk dijalankan.
Kelas aplikasi Anda harus berada di puncak hierarki paket Anda, sehingga Spring dapat memindai sub-paket dan mengetahui komponen lain yang diperlukan.
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);
}
}
Potongan kode di bawah ini berfungsi sebagai paket pengontrol di bawah com.test.spring.boot
paket
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!";
}
}
Potongan kode di bawah ini TIDAK Berfungsi karena paket pengontrol TIDAK di bawah com.test.spring.boot
paket
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!";
}
}
Dari dokumentasi Spring Boot:
Banyak pengembang Spring Boot selalu memiliki kelas utamanya yang dianotasi @Configuration
, @EnableAutoConfiguration
dan @ComponentScan
. Karena anotasi ini sangat sering digunakan bersama (terutama jika Anda mengikuti praktik terbaik di atas), Spring Boot memberikan @SpringBootApplication
alternatif yang nyaman .
The @SpringBootApplication
penjelasan setara dengan menggunakan
@Configuration
, @EnableAutoConfiguration
dan @ComponentScan
dengan atribut default