Rumah > Java > javaTutorial > teks badan

Cara menambah awalan URL pada berbilang pengawal SpringBoot

WBOY
Lepaskan: 2023-05-12 18:37:20
ke hadapan
2039 orang telah melayarinya
Kata Pengantar

Dalam sesetengah kes, awalan dalam pengawal perkhidmatan adalah konsisten Contohnya, awalan semua URL ialah /context-path/api/v1, yang perlu ditambah untuk. beberapa URL awalan seragam.

Penyelesaian yang boleh difikirkan ialah mengubah suai laluan konteks perkhidmatan dan menambah api/v1 pada laluan konteks Mengubah suai awalan global dengan cara ini boleh menyelesaikan masalah di atas, tetapi terdapat kelemahan URL mempunyai berbilang awalan , contohnya, sesetengah URL perlu diawali dengan api/v2, jadi ia tidak boleh dibezakan Jika sesetengah sumber statik dalam perkhidmatan tidak mahu menambah api/v1, ia tidak boleh dibezakan.

Berikut ialah penambahan bersatu awalan URL tertentu melalui anotasi tersuai.

1. Tambahkan konfigurasi awalan dalam fail konfigurasi

Jika anda memerlukan berbilang awalan, tambahkan beberapa set konfigurasi, contohnya, tambah: api.prefix.v2=/api/v2

################konfigurasi awalan url##################
api.prefix.v1 =/api /v1

2. Konfigurasikan entiti dipetakan

@Data
@Component
@ConfigurationProperties(prefix = "api.prefix")
public class ApiPrefix {
    private String v1;
}
Salin selepas log masuk

3. Anotasi tersuai

Fungsi anotasi ini konsisten dengan @RestController dan sepadan dengan api. konfigurasi prefix.v1, jika terdapat berbilang set konfigurasi, hanya tentukan berbilang anotasi

@RestController
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiV1RestController {
}
Salin selepas log masuk

4. Tambahkan awalan pada PathMatch tersuai

Tambah kelas konfigurasi untuk mewarisi WebMvcConfigurer, ganti kaedah configurePathMatch, dan tambahkan awalan pada kelas Tambah awalan yang sepadan pada antara muka dalam pengawal beranotasi dengan ApiV1RestController.

@AutoConfiguration
public class WebMvcConfig implements WebMvcConfigurer {
    @Autowired
    private ApiPrefix apiPrefix;
    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.addPathPrefix(apiPrefix.getV1(), c -> c.isAnnotationPresent(ApiV1RestController.class));
    }
}
Salin selepas log masuk

5 Ujian

Anda perlu menggunakan anotasi @ApiV1RestController dan bukannya anotasi @RestController pada pengawal yang sepadan

@ApiV1RestController
@RequestMapping("/test/apiv1")
public class TestApiV1RestController {
    @GetMapping()
    public ResponseEntity get() {
        return new ResponseEntity();
    }
}
Salin selepas log masuk

Cara menambah awalan URL pada berbilang pengawal SpringBoot

Atas ialah kandungan terperinci Cara menambah awalan URL pada berbilang pengawal 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