1. Daftar Anotasi
@SpringbootApplication: berisi @ComponentScan, @configuration dan @enableAutoconfiguration anotasi. Di mana @ComponentScan memungkinkan pemindaian boot musim semi ke kelas konfigurasi dan menambahkannya ke konteks program.
@Configuration setara dengan file konfigurasi XML Spring; Kode Java dapat memeriksa keamanan tipe.
@EnableAutoconfiguration Konfigurasi otomatis.
@Componentscan Componentscan komponen pemindaian untuk secara otomatis menemukan dan merakit beberapa kacang.
@Component dapat digunakan dengan Commandlinerner untuk menjalankan beberapa tugas dasar setelah program dimulai.
Anotasi @RestController adalah kumpulan @Controller dan @ResponseBody, menunjukkan bahwa ini adalah kacang pengontrol, dan nilai pengembalian fungsi secara langsung diisi ke dalam badan respons HTTP. Ini adalah pengontrol gaya istirahat.
@Autowired secara otomatis mengimpor.
@PathVariable mendapatkan parameter.
@Jsonbackreference memecahkan masalah tautan eksternal bersarang.
@RepositoryRestresourcePublic digunakan dengan spring-boot-starter-data-rest.
2. Penjelasan terperinci tentang anotasi
@SpringbootApplication: Deklarasikan boot pegas untuk secara otomatis mengonfigurasi program dengan konfigurasi yang diperlukan. Konfigurasi ini setara dengan tiga konfigurasi: @configuration, @enableAutoconfiguration dan @Componentscan.
paket com.example.myproject; impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.springbootApplication; @springbootApplication // Sama seperti @configuration @enableAutoconfiguration @componentscan Application Public Class {public static void (String [] args) {springapplication.run. }}@ResponseBody: Ini berarti bahwa hasil pengembalian metode ini ditulis langsung ke dalam badan respons HTTP. Secara umum digunakan ketika data diperoleh secara asinkron dan digunakan untuk membangun API yang tenang. Setelah menggunakan @RequestMapping, nilai pengembalian biasanya diuraikan sebagai jalur lompat. Setelah menambahkan @ResponseBody, hasil pengembalian tidak akan diuraikan sebagai jalur lompat, tetapi akan langsung ditulis ke dalam badan respons HTTP. Misalnya, jika Anda mendapatkan data JSON secara tidak sinkron dan menambahkan @ResponseBody, data JSON akan dikembalikan secara langsung. Anotasi ini umumnya akan digunakan dengan @Requestmapping. Kode contoh:
@RequestMapping ("/test") @ResponseBody public string test () {return "ok"; }@Controller: digunakan untuk menentukan kelas pengontrol. Dalam proyek Spring, pengontrol bertanggung jawab untuk meneruskan permintaan URL yang dikirim oleh pengguna ke antarmuka layanan yang sesuai (lapisan layanan). Secara umum, anotasi ini ada di kelas. Biasanya, metode ini perlu dikoordinasikan dengan anotasi @Requestmapping. Kode contoh:
@Controller @RequestMapping ("/Demoinfo") PublicClass Democontroller {@Autowired Private DemoInfoservice DemoInfoservice; @RequestMapping ("/Hello") Public String (peta <String, Object> peta) {System.out.println ("Democontroller. Map.put ("Hello", "dari templatecontroller.hellohtml"); // Template hello.html atau hello.ftl akan digunakan untuk rendering dan display. return "/hello";}}@RestController: Koleksi komponen lapisan kontrol (seperti Action in Struts), @ResponseBody dan @Controller. Kode contoh:
paket com.kfit.demo.web; impor org.springframework.web.bind.annotation.requestmapping; Impor org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping ("/DemoinFo2") PublicClass Democontroller2 {@RequestMapping ("/test") Public String test () {return "ok";}}@RequestMapping: Menyediakan informasi perutean dan bertanggung jawab untuk memetakan URL ke fungsi spesifik dalam pengontrol.
@EnableAutoconfiguration: Konfigurasi otomatis boot Spring: Cobalah untuk secara otomatis mengonfigurasi aplikasi pegas Anda berdasarkan dependensi JAR yang Anda tambahkan. Misalnya, jika HSQLDB ada di bawah ClassPath Anda dan Anda belum secara manual mengkonfigurasi kacang koneksi database apa pun, maka kami akan secara otomatis mengonfigurasi database dalam memori. Anda dapat menambahkan anotasi @EnableAutoconfiguration atau @springbootApplication ke kelas @configuration untuk memilih konfigurasi autoconfiguration. Jika Anda menemukan bahwa kelas konfigurasi autokonfigurasi tertentu yang tidak Anda inginkan diterapkan, Anda dapat menggunakan atribut pengecualian dari anotasi @EnableAutoconfiguration untuk menonaktifkannya.
@ComponentScan: berarti bahwa kelas akan secara otomatis menemukan komponen pemindaian. Pemahaman pribadi setara dengan itu jika Anda memindai kelas dengan anotasi seperti @Component, @controller, @service, dll. Dan mendaftarkannya sebagai kacang, Anda dapat secara otomatis mengumpulkan semua komponen musim semi, termasuk kelas @configuration. Kami sering menggunakan anotasi @Componentscan untuk mencari kacang dan mengimpornya dalam kombinasi dengan anotasi @Autowired. Semua komponen pegas dapat dikumpulkan secara otomatis, termasuk kelas @configuration. Kami sering menggunakan anotasi @Componentscan untuk mencari kacang dan mengimpornya dalam kombinasi dengan anotasi @Autowired. Jika tidak ada konfigurasi, Spring Boot akan memindai kelas di bawah paket di mana kelas startup berada dan subpackage yang menggunakan anotasi @Service, @Repository, dll.
@Configuration: Setara dengan file konfigurasi XML tradisional. Jika beberapa pustaka pihak ketiga perlu menggunakan file XML, disarankan untuk tetap menggunakan kelas @Configuration sebagai kelas konfigurasi utama proyek - Anda dapat menggunakan anotasi @Importresource untuk memuat file konfigurasi XML.
@Import: Digunakan untuk mengimpor kelas konfigurasi lainnya.
@Importresource: Digunakan untuk memuat file konfigurasi XML.
@Autowired: Secara otomatis mengimpor kacang dependen
@Service: Komponen yang umumnya digunakan untuk memodifikasi lapisan layanan
@Repository: Menggunakan anotasi @Repository dapat memastikan bahwa DAO atau repositori memberikan terjemahan pengecualian. Kelas DAO atau repositori yang dimodifikasi oleh anotasi ini akan ditemukan dan dikonfigurasi oleh ComponetScan, dan tidak perlu menyediakannya dengan item konfigurasi XML.
@Bean: Gunakan metode anotasi @Bean untuk setara dengan kacang yang dikonfigurasi dalam XML.
@Value: Suntikkan nilai properti yang dikonfigurasi oleh Spring Boot Application.properties. Kode contoh:
@Value (value = "#{message}") pesan string pribadi;@Inject: setara dengan @autowired default, tetapi tanpa atribut yang diperlukan;
@Component: Mengacu pada komponen secara umum. Ketika komponen tidak mudah diklasifikasikan, kita dapat menggunakan anotasi ini untuk membuat anotasi.
@Bean: Ini setara dengan XML, ditempatkan di atas metode, bukan kelas, yang berarti menghasilkan kacang dan menyerahkannya ke manajemen musim semi.
@Autowired: Secara otomatis mengimpor kacang dependen. metode bytype. Gunakan kacang yang dikonfigurasi untuk menyelesaikan perakitan properti dan metode. Ini dapat menandai variabel anggota kelas, metode, dan konstruktor untuk menyelesaikan pekerjaan perakitan otomatis. Ketika (diperlukan = false) ditambahkan, kesalahan tidak akan dilaporkan bahkan jika kacang tidak dapat ditemukan.
@Qualifier: Ketika ada beberapa kacang dari jenis yang sama, Anda dapat menggunakan @qualifier ("name") untuk menentukannya. Bekerja dengan @Autowired. Selain menyuntikkan menurut namanya, deskriptor kualifikasi @Qualifier dapat digunakan untuk melakukan kontrol granularitas yang lebih baik bagaimana memilih kandidat. Metode penggunaan spesifik adalah sebagai berikut:
@Autowired @qualifier (value = "DemoInfoservice") DemoInfoservice Private DemoInfoservice;
@Resource (name = "name", type = "type"): Jika tidak ada konten dalam tanda kurung, standarnya adalah byname. Lakukan sesuatu yang mirip dengan @Autowired.
3. Catatan JPA
@Entity: @table (name = ""): Menunjukkan bahwa ini adalah kelas entitas. Umumnya digunakan untuk dua anotasi JPA, tetapi jika nama tabel dan nama kelas entitas sama, @table dapat dihilangkan.
@MappedSuperClass: Digunakan untuk menentukan entitas yang merupakan kelas induk. Subkelas atribut dari kelas induk dapat diwarisi.
@Norepositorybean: umumnya digunakan sebagai repositori kelas induk. Dengan anotasi ini, Spring tidak akan membuat instantiasi repositori.
@Column: Jika nama bidangnya sama dengan nama kolom, itu dapat dihilangkan.
@ID: berarti atribut ini adalah kunci utama.
@GeneratedValue (Strategy = GenerationType.Setence, Generator = "REPPERN_SEQ"): berarti bahwa strategi generasi kunci utama adalah urutan (dapat auto, identitas, asli, dll., Otomatis berarti bahwa ia dapat beralih di antara beberapa database), dan nama urutan yang ditentukan adalah reparation_seq.
@SequenceGeneretor (name = "Repair_seq", Sequencename = "SEQ_REPAIR", allocatize = 1): Nama adalah nama urutan, sehingga urutan urutan adalah nama urutan database, dan kedua nama tersebut dapat konsisten.
@Transient: berarti properti ini bukan peta ke bidang dalam tabel database, dan kerangka kerja ORM akan mengabaikan properti ini. Jika atribut bukan peta bidang dari tabel database, itu harus ditandai sebagai @transient. Jika tidak, kerangka kerja ORM default untuk anotasi sebagai @Basic. @Basic (fetch = fetchType.lazy): Tag dapat menentukan bagaimana atribut entitas dimuat
@Jsonignore: Fungsinya adalah mengabaikan beberapa properti dalam kacang java saat membuat serialisasi JSON, dan kedua serialisasi dan deserialisasi terpengaruh.
@JOincolumn (name = "LoginID"): One-to-One: Kunci asing di tabel ini menunjuk ke tabel lain. One-to-Many: Tabel lain menunjuk ke kunci asing dari tabel ini.
@Onetoone, @onetomany, @manytoOne: sesuai dengan satu-ke-satu, satu-ke-banyak, dan banyak-ke-satu dalam file konfigurasi hibernate.
4. Catatan Terkait SpringMVC
@RequestMapping: @RequestMapping ("/Path") berarti bahwa pengontrol menangani semua permintaan URL untuk "/path". RequestMapping adalah anotasi yang digunakan untuk menangani pemetaan alamat permintaan dan dapat digunakan pada kelas atau metode.
Untuk digunakan pada kelas, semua metode yang mewakili permintaan respons di kelas mengambil alamat ini sebagai jalur induk. Anotasi ini memiliki enam atribut:
@RequestParam: Digunakan sebelum parameter metode.
@RequestParam String a = request.getParameter ("a"). @Pathvariable: pathvariable. Misalnya, RequestMapping ("user/get/mac/{macAddress}") string publik getByMacAddress (@pathvariable string macAddress) {// lakukan sesuatu; }Parameter harus sama dengan nama dalam kawat gigi.
5. Penanganan Pengecualian Global
@ControllerAdvice: Berisi @Component. Bisa dipindai. Penanganan pengecualian terpadu.
@ExceptionHandler (Exception.class): Digunakan pada metode untuk menunjukkan bahwa jika Anda menemukan pengecualian ini, Anda akan menjalankan metode berikut.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.