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
.
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
Langkah-langkah pemprosesan
Sistem perniagaan mempunyai nombor telefon mudah alih nombor telefon mudah alih akan dihantar ke pusat penghalaan untuk rekod
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("过滤器初始化"); }
2 Dapatkan laluan antara muka permintaan
HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; String requestName = request.getRequestURI();
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()); }
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!