Rumah > Java > javaTutorial > Apakah mata pengetahuan anotasi SpringBoot?

Apakah mata pengetahuan anotasi SpringBoot?

WBOY
Lepaskan: 2023-05-15 16:40:06
ke hadapan
907 orang telah melayarinya

1. Senarai anotasi

@SpringBootApplication: Mengandungi anotasi @ComponentScan, @Configuration dan @EnableAutoConfiguration. Antaranya, @ComponentScan membenarkan Spring Boot mengimbas kelas Konfigurasi dan menambahkannya pada konteks program.

@Configuration adalah bersamaan dengan fail konfigurasi XML spring boleh disemak menggunakan kod Java.

@EnableAutoConfiguration konfigurasi automatik.

Pengimbasan komponen @ComponentScan boleh menemui dan memasang beberapa biji secara automatik.

@Component boleh digunakan dengan CommandLineRunner untuk melaksanakan beberapa tugas asas selepas program bermula.

Anotasi @RestController ialah koleksi @Controller dan @ResponseBody, yang menunjukkan bahawa ini ialah kacang pengawal, dan nilai pulangan fungsi diisi terus dalam badan tindak balas HTTP, yang merupakan gaya REST pengawal.

@import automatik berwayar automatik.

@PathVariable mendapat parameter.

@JsonBackReference menyelesaikan masalah pautan luar bersarang.

@RepositoryRestResourcepublic digunakan dengan spring-boot-starter-data-rest.

2. Penjelasan terperinci tentang anotasi

@SpringBootApplication: Mengisytiharkan bahawa but spring secara automatik mengkonfigurasi atur cara yang diperlukan ini bersamaan dengan: @Configuration, @EnableAutoConfiguration dan @. ComponentScan tiga konfigurasi.

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // sama seperti

@Configuration @EnableAutoConfiguration

@ComponentScanpublic class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args

}

}

@ResponseBody: Menunjukkan bahawa hasil pulangan kaedah ini ditulis terus ke dalam badan respons HTTP Ia biasanya digunakan apabila mendapatkan data secara tidak segerak dan digunakan untuk membina API RESTful . Selepas menggunakan @RequestMapping, nilai pulangan biasanya dihuraikan sebagai laluan lompat Selepas menambah @responsebody, hasil pulangan tidak akan dihuraikan sebagai laluan lompat, tetapi akan ditulis terus ke dalam badan respons HTTP. Contohnya, jika anda memperoleh data json secara tak segerak dan menambah @responsebody, data json akan dikembalikan secara langsung. Anotasi ini biasanya digunakan bersama dengan @RequestMapping. Kod sampel:

@RequestMapping(“/test”)@ResponseBodypublic String test(){ return “ok”;}

@Controller: digunakan untuk mentakrifkan kelas pengawal, dalam projek spring Pengawal bertanggungjawab untuk memajukan permintaan URL yang dihantar oleh pengguna ke antara muka perkhidmatan yang sepadan (lapisan perkhidmatan) Secara amnya, anotasi ini berada dalam kelas, dan biasanya kaedah itu perlu disertakan dengan anotasi @RequestMapping. Kod contoh:

@Controller@RequestMapping("/demoInfo") kelas awam DemoController {

@Autowired private DemoInfoService demoInfoService;

@RequestMapping("/hello") awam String hello(Map map){ System.out.println("DemoController.hello()");

map.put("hello","dari TemplateController.helloHtml"

);

// Akan menggunakan templat hello.html atau hello.ftl untuk rendering dan paparan

kembali "/hello"

}

}

@RestController: digunakan untuk menganotasi komponen lapisan kawalan (seperti tindakan dalam tupang), koleksi @ResponseBody dan @Controller. Kod contoh:

import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController; @RestController@RequestMapping(“/demoInfo2”)publicclass DemoController2 {

@RequestMapping("/test") public String test(){ return"ok";

}

}

@RequestMapping: Berikan maklumat penghalaan, Bertanggungjawab untuk memetakan URL kepada fungsi tertentu dalam Pengawal.

@EnableAutoConfiguration: Konfigurasi automatik Spring Boot (konfigurasi automatik): Cuba untuk mengkonfigurasi aplikasi Spring anda secara automatik berdasarkan kebergantungan balang yang anda tambahkan. Contohnya, jika HSQLDB wujud pada laluan kelas anda dan anda belum mengkonfigurasi sebarang kacang sambungan pangkalan data secara manual, maka kami akan mengkonfigurasi pangkalan data dalam memori secara automatik Anda boleh menambah anotasi @EnableAutoConfiguration atau @SpringBootApplication ke Kelas @Configuration untuk memilih auto-. konfigurasi. Jika anda mendapati kelas konfigurasi automatik tertentu digunakan yang anda tidak mahu, anda boleh menggunakan atribut exclude anotasi @EnableAutoConfiguration untuk melumpuhkannya

@ComponentScan: Menunjukkan bahawa kelas itu akan secara automatik ditemui dan diimbas untuk komponen. Pemahaman peribadi saya ialah jika kelas dengan anotasi @Component, @Controller, @Service, dsb. diimbas dan didaftarkan sebagai kacang, semua komponen Spring, termasuk kelas @Configuration, boleh dikumpulkan secara automatik gunakan anotasi @ComponentScan untuk mencari kacang Dan importnya dengan anotasi @Autowired boleh dikumpulkan secara automatik, termasuk kelas @Configuration Kami sering menggunakan anotasi @ComponentScan untuk mencari kacang, dan jika tiada konfigurasi, Spring Boot akan mengimbas pakej di mana kelas permulaan terletak Dan kelas di bawah subpakej menggunakan @Service, @Repository dan anotasi lain

.

@Configuration: Setara dengan fail konfigurasi xml tradisional Jika sesetengah perpustakaan pihak ketiga perlu menggunakan fail xml, adalah disyorkan untuk masih menggunakan kelas @Configuration sebagai kelas konfigurasi utama projek - anda boleh menggunakan @. Anotasi ImportResource untuk memuatkan fail konfigurasi xml.

@Import: digunakan untuk mengimport kelas konfigurasi lain.

@ImportResource: digunakan untuk memuatkan fail konfigurasi xml.

@Autowired: Import kacang bergantung secara automatik

@Service: Biasanya digunakan untuk mengubah suai komponen lapisan perkhidmatan

@Repository: Gunakan anotasi @Repository untuk memastikan DAO atau repositori menyediakan terjemahan Pengecualian, DAO atau kelas repositori yang diubah suai oleh anotasi ini akan ditemui dan dikonfigurasikan oleh ComponentScan, dan tidak perlu menyediakan item konfigurasi XML untuk mereka.

@Bean: Kaedah yang ditandakan dengan @Bean adalah bersamaan dengan kacang yang dikonfigurasikan dalam XML.

@Value: Suntikan nilai sifat yang dikonfigurasikan oleh Spring boot application.properties. Kod sampel:

@Value(value = “#{message}”)mesej Rentetan peribadi;

@Inject: Bersamaan dengan lalai @Autowired, tetapi tanpa atribut yang diperlukan;

@Komponen: Secara amnya merujuk kepada komponen Apabila komponen sukar dikelaskan, kita boleh menggunakan anotasi ini untuk menganotasinya.

@Bean: Setara dengan XML, diletakkan di atas kaedah dan bukannya kelas, yang bermaksud menjana kacang dan menyerahkannya kepada spring untuk pengurusan.

@AutoWired: Import kacang bergantung secara automatik. kaedah byType. Gunakan kacang yang dikonfigurasikan untuk melengkapkan pemasangan atribut dan kaedah Ia boleh menganotasi pembolehubah ahli kelas, kaedah dan pembina untuk melengkapkan pemasangan automatik. Apabila (diperlukan=salah) ditambah, tiada ralat akan dilaporkan walaupun kacang tidak ditemui.

@Qualifier: Apabila terdapat berbilang kacang dari jenis yang sama, anda boleh menggunakan @Qualifier("nama") untuk menentukan. Digunakan dengan @Autowired. Selain dapat menyuntik berdasarkan nama, deskriptor berkelayakan @Qualifier boleh memberikan kawalan yang lebih terperinci tentang cara memilih calon Penggunaan khusus adalah seperti berikut:

@Autowired@Qualifier(value = “. demoInfoService”)peribadi DemoInfoService demoInfoService ;

@Resource(name="name",type="type"): Jika tiada kandungan dalam kurungan, ia lalai kepada byName. Lakukan perkara yang serupa dengan @Autowired.

3. Anotasi JPA

@Entity: @Table(name=""): Menunjukkan bahawa ini ialah kelas entiti. Biasanya digunakan dalam jpa, kedua-dua anotasi ini biasanya digunakan bersama, tetapi jika nama jadual dan nama kelas entiti adalah sama, @Table boleh diabaikan

@MappedSuperClass: Digunakan pada entiti yang ditentukan sebagai kelas induk . Subkelas boleh mewarisi sifat kelas induk.

@NoRepositoryBean: Umumnya digunakan sebagai repositori kelas induk Dengan anotasi ini, spring tidak akan membuat seketika repositori.

@Lajur: Jika nama medan adalah sama dengan nama lajur, ia boleh ditinggalkan.

@Id: Menunjukkan bahawa atribut ini ialah kunci utama.

@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”): Menunjukkan bahawa strategi penjanaan kunci utama ialah urutan (boleh Auto, IDENTITY, asli, dsb., Auto bermakna ia boleh bertukar antara berbilang pangkalan data), ditentukan Nama jujukan ialah repair_seq.

@SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair”, alllocationSize = 1): nama ialah nama jujukan untuk kegunaan mudah, sequenceName ialah nama jujukan pangkalan data dan dua nama boleh konsisten.

@Transient: Menunjukkan bahawa atribut ini bukan pemetaan ke medan dalam jadual pangkalan data dan rangka kerja ORM akan mengabaikan atribut ini. Jika atribut bukan pemetaan medan jadual pangkalan data, ia mesti ditandakan sebagai @Transient Jika tidak, rangka kerja ORM lalai kepada anotasi @Basic. @Basic(fetch=FetchType.LAZY): Teg boleh menentukan kaedah pemuatan atribut entiti

@JsonIgnore: Fungsinya adalah untuk mengabaikan beberapa atribut dalam Java beans semasa pesirilan json terjejas.

@JoinColumn (name="loginId"): One-to-one: kunci asing dalam jadual ini menghala ke jadual lain. Satu-ke-banyak: Kunci asing daripada jadual lain yang menunjuk ke jadual ini.

@OneToOne, @OneToMany, @ManyToOne: sepadan dengan satu-dengan-satu, satu-ke-banyak dan banyak-dengan-satu dalam fail konfigurasi hibernate.

4. Nota berkaitan SpringMVC

@RequestMapping: @RequestMapping("/path") bermaksud pengawal mengendalikan semua permintaan URL "/path". RequestMapping ialah anotasi yang digunakan untuk mengendalikan pemetaan alamat permintaan, yang boleh digunakan pada kelas atau kaedah. Digunakan pada kelas, ini bermakna semua kaedah dalam kelas yang bertindak balas kepada permintaan menggunakan alamat ini sebagai laluan induk. Anotasi ini mempunyai enam atribut:

params: Menentukan bahawa permintaan mesti mengandungi nilai parameter tertentu sebelum ia boleh diproses oleh kaedah ini. pengepala: Permintaan yang ditentukan mesti mengandungi nilai pengepala tertentu yang tertentu agar kaedah ini memproses permintaan tersebut. nilai: Tentukan alamat sebenar permintaan, alamat yang ditentukan boleh menjadi kaedah mod Templat URI: Tentukan jenis kaedah permintaan, GET, POST, PUT, DELETE, dsb. pengguna: Tentukan jenis kandungan penyerahan (Content-Type ) untuk memproses permintaan, seperti application/ json, text/html;menghasilkan: Tentukan jenis kandungan yang akan dikembalikan Hanya apabila jenis (Terima) dalam pengepala permintaan mengandungi jenis yang ditentukan, ia akan dikembalikan

@RequestParam: digunakan di hadapan parameter kaedah. @RequestParamString a =request.getParameter("a").

@PathVariable: Pembolehubah laluan. Seperti

RequestMapping("user/get/mac/{macAddress}") public String getByMacAddress(@PathVariable String macAddress){ //buat sesuatu;}

Parameter dan nama dalam kurungan kerinting Yang sama mesti sama.

5. Pengendalian pengecualian global

@ControllerAdvice: Mengandungi @Component. boleh diimbas. Mengendalikan pengecualian secara seragam.

@ExceptionHandler (Exception.class): Digunakan pada kaedah untuk menunjukkan bahawa kaedah berikut akan dilaksanakan apabila menghadapi pengecualian ini.

Atas ialah kandungan terperinci Apakah mata pengetahuan anotasi SpringBoot?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan