Rumah > Java > javaTutorial > Bagaimanakah penapis SpringBoot melaksanakan penapisan antara muka dalam projek?

Bagaimanakah penapis SpringBoot melaksanakan penapisan antara muka dalam projek?

WBOY
Lepaskan: 2023-05-15 08:10:10
ke hadapan
1375 orang telah melayarinya

Perniagaan

Disebabkan keperluan perniagaan, terdapat dua set projek, satu pusat routing dan satu lagi sistem perniagaan.

Masalahnya sekarang ialah pusat routing berintegrasi Akaun rasmi WeChat dan Dengan fungsi modul program mini, sistem perniagaan telah menggunakan beberapa set perkhidmatan

Kini anda perlu menghubungi pusat penghalaan untuk mengubah hala antara muka ke sistem perniagaan yang ditetapkan

. Bagaimanakah penapis SpringBoot melaksanakan penapisan antara muka dalam projek?

Isu yang perlu ditangani

  • Ikat program mini dan maklumat pengguna akaun awam dengan sistem perniagaan

  • Ikat antara muka pusat penghalaan dengan sistem perniagaan Antara muka menentukan perkhidmatan sistem perniagaan yang ditemui melalui maklumat pengguna

  • dan mengedarkannya kepada sistem perniagaan yang sepadan

Maklumat pengguna akaun awam dan perniagaan Sistem memang mengikat

Langkah-langkah pemprosesan

Sistem perniagaan mempunyai nombor telefon mudah alih nombor telefon mudah alih akan dihantar ke pusat penghalaan untuk rekod

Pusat penghalaan akan Mengantaramukakan pertimbangan antara antara muka dan sistem perniagaan

Langkah pemprosesan

1 pemetaan dalam sistem pusat penghalaan

    private static List<String> URLS = new ArrayList<>();
    @Resource
    private WebApplicationContext applicationContext;
	
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        applicationContext
		.getBean(RequestMappingHandlerMapping.class)
		.getHandlerMethods()
		.forEach((k, v) -> { k.getPatternsCondition().getPatterns().stream().forEach(s-> URLS.add(s)); });
        log.info("过滤器初始化");
    }
Salin selepas log masuk

2 Dapatkan laluan antara muka permintaan

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        String requestName = request.getRequestURI();
Salin selepas log masuk

3 Tentukan sama ada ia adalah antara muka pusat penghalaan

        if (URLS.contains(requestName)) {
		//系统接口
            chain.doFilter(servletRequest, servletResponse);
        } else {
		//业务系统接口 需要代理
//            代理请求
            ResponseEntity<String> redirect = routerService.redirect(request, response, "xxx", "xxx");
            //设置将字符以"UTF-8"编码输出到客户端浏览器
            response.setCharacterEncoding("UTF-8");
            //通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
            response.setHeader("content-type", "application/json; charset=utf-8");
            response.getWriter().write(redirect.getBody());
        }
Salin selepas log masuk

Semua kodrreeee

Atas ialah kandungan terperinci Bagaimanakah penapis SpringBoot melaksanakan penapisan antara muka dalam projek?. 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