Saat kami membuat aplikasi boot Musim Semi, kami menganotasinya dengan @SpringBootApplicationanotasi. Anotasi ini 'merangkum' banyak anotasi lain yang diperlukan agar aplikasi dapat bekerja. Salah satu anotasi tersebut adalah @ComponentScananotasi. 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.bootpaket
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.bootpaket
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, @EnableAutoConfigurationdan @ComponentScan. Karena anotasi ini sangat sering digunakan bersama (terutama jika Anda mengikuti praktik terbaik di atas), Spring Boot memberikan @SpringBootApplicationalternatif yang nyaman .
The @SpringBootApplicationpenjelasan setara dengan menggunakan
@Configuration, @EnableAutoConfigurationdan @ComponentScandengan atribut default