Artikel ini memperkenalkan penggunaan pencegat di boot musim semi. Mereka umumnya menangani pemrosesan lintas domain di pencegat, memungkinkan akses lintas domain ke proyek. Untuk informasi terperinci tentang penggunaan pencegat, silakan merujuk ke situs web resmi.
Langkah -langkah untuk mengimplementasikan pencegat khusus:
1. Buat kelas dan terapkan antarmuka handlerinterceptor.
2. Buat kelas Java untuk mewarisi WebMvCconfigurerAdapter dan mengganti metode AddInterceptors.
2. Serahkan pencegat khusus ke manajemen musim semi, dan kemudian secara manual menambahkan objek ke rantai pencegat (tambahkan metode addInterceptors).
Buat kelas pencegat
Paket com.example.springboot.config.intercepter; impor org.springframework.stereotype.component; impor org.springframework.web.servlet.handlerInterceptor; impor org.springframework.web.servlet.modelandview; impor javax.spramework.web.servlet.modelandview; impor javax.spramework.servlet.modelandview; impor javax.svax. javax.servlet.http.httpservletResponse;/** * @desc Custom Interceptor, gunakan @component untuk membiarkan musim semi mengelola siklus hidupnya * @author wangsh * @Date 2018/6 17:06 * @return */ @ComponentPublic Class TestInterchePter TestInclement HandlerCepor {ComponentPlic Public. preHandle (permintaan httpservletRequest, respons httpservletResponse, pawang objek) melempar pengecualian {system.out.println (">>> prehandle >>>>>>>>>>>> Panggilan sebelum pemrosesan permintaan (sebelum metode pengontrol panggilan)"); setCrossDomain (respons); return true; // Hanya ketika pengembalian true akan terus mengeksekusi ke bawah, pengembalian false untuk membatalkan permintaan saat ini} @Override public void posthandle (httpservletRequest permintaan, httpserVletResponse respons, pawang objek, sebelum tampilan ModelandView) Lempar Pengecualian {// Panggilan setelah permintaan diproses, tetapi sebelum tampilan The The View dan Rever. System.out.println (">>> Posthandle >>>>>>>>>>>>>>>> Panggilan setelah permintaan diproses, tetapi sebelum tampilan diberikan (setelah metode pengontrol dipanggil)"); } @Override public void AfterCompletion (permintaan httpservletRequest, respons httpservletResponse, penangan objek, pengecualian ex) melempar pengecualian {// dipanggil setelah seluruh permintaan berakhir, yaitu, dieksekusi setelah DispatcherServlet menjadikan pandangan yang sesuai (terutama untuk pembersihan sumber daya); System.out.println (">>> Posthandle >>>>>>>>>>>>>>> Dipanggil setelah seluruh permintaan berakhir, yaitu, setelah DispatcherServlet membuat tampilan yang sesuai (terutama untuk pembersihan sumber daya)"); } / *** @param @param File pengaturan respons* @return void type return* @throws* @title: setCrossDomain* @description: todo (atur masalah domain cross)* / private void setcrossDomain (httpservletResponse response) {response.addheader ("akses-cortrol-cortrol-aLall-aLLOW-ALLOWSE) {response. response.addheader ("Access-Control-Allow-Methods", "Post, Get"); response.addheader ("Access-Control-Allow-Credentials", "True"); }}Tambahkan pencegat khusus ke rantai pencegat
Paket com.example.springboot.config.config; import com.example.springboot.config.intercePter.testintercepter; impor org.springframework.beans.factory.annotation.Autowired; Impor org.springframework.confactory.annotation org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/** * Register bean */@Configurationpublic class InterceptorConfig extends WebMvcConfigurerAdapter { @Autowired private TestInterceptor TestInterceptor; @Override public void addInterceptors (interceptorregistry registry) {registry.addInterceptor (testInterceptor); }}Buat kelas pengontrol
Paket com.example.springboot.config.conroller; impor org.springframework.web.bind.annotation.requestmapping; impor org.springframework.web.bind.annotation.restcontroller;@restcontroller@requestMapping ("/user") public USPROMPLER; Kelas Public (RestController@requestMapping ("/user") Public Class@ halo () {return "hello"; }}Buat kelas layanan startup
Paket com.example.springboot.config; impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.springbootApplication; @springbootApplication Public class springboOtFigapplication {public Static Statatic Statatic Static Static Static Static Static Statatic Static Statatic Statatic Statatic Stabs Public Class Public SPRINGBOOTFIGLICATION {public Static Static Static Static static static static static static static static static static stance {public stocclication {public stance {public stancyplication Springapplication.run (springbootconfigapplication.class, args); }}Mulailah tes layanan, kunjungi http: // localhost: 8088/halo di browser, cetak log sebagai berikut, Anda dapat melihat bahwa pencegat telah berlalu.
Meringkaskan
Di atas adalah penjelasan terperinci tentang penggunaan pencegat konfigurasi springboot yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan. Editor akan membalas semua orang tepat waktu!