当前位置: 首页 > news >正文

车子网站手机网站大全1

车子网站,手机网站大全1,网站建设实训课,网站建设收费标准咨询1.不需要编写controller 等mvc层#xff0c;通过接口动态生成api。 这个问题#xff0c;其实很好解决#xff0c;以前编写接口#xff0c;是要写controller#xff0c;需要有 RestController RequestMapping(/test1) public class xxxController{ ApiOperat…1.不需要编写controller 等mvc层通过接口动态生成api。 这个问题其实很好解决以前编写接口是要写controller需要有 RestController RequestMapping(/test1) public class xxxController{ ApiOperation(测试预览)PostMapping(/test2)public Object test(String name) throws Exception { } }在这个总开关类里面dispacherServlet这个类里面是需要解析的 从doDispatch方法开始解析只贴需要的代码 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { // Determine handler for the current request.//1.这个方法就是执行了寻找对应的类实例和方法名mappedHandler getHandler(processedRequest);if (mappedHandler null) {// 找不到会报错就是常见的404没有找到xxx/xxx方法映射noHandlerFound(processedRequest, response);return;} }然后ctrl点进去 mappedHandler getHandler(processedRequest); 这个方法 来到 Nullableprotected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception {if (this.handlerMappings ! null) {// 从这里便利找for (HandlerMapping mapping : this.handlerMappings) {HandlerExecutionChain handler mapping.getHandler(request);if (handler ! null) {return handler;}}}return null;}HandlerMapping 它就长这样子 其中绿色的这个就是我们写的什么controller啥的地址啦还有对应得方法在里面。 2.重点 从上图看 这个红色 就是我们要写的一个了因为为什么呢你要动态的绿色代码里你都没写。是springboot你写了controller代码它自动扫描到的所以你得自己配一个进去。这样子就能够实现动态解析了。 3.基于以上简单的介绍那就可以开始了说白了就是模范写一个进去让springboot能够识别。他原生自带的不行咱就给它 RequstMappingHandlerMapping 就是模仿这个类写一个。 先看这个类长啥样 public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappingimplements MatchableHandlerMapping, EmbeddedValueResolverAware {}继承还挺多完了我们也写一个,主要实现这个方法即可lookupHandlerMethod这个就是怎么找对应地址和方法的逻辑 Component public class CustomHandlerMapping extends RequestMappingInfoHandlerMappingimplements MatchableHandlerMapping, Ordered {Autowiredprivate ListHandlerMethodArgumentResolver argumentResolvers; // 注入Spring Boot自带的参数解析器Overrideprotected HandlerMethod lookupHandlerMethod(String lookupPath, HttpServletRequest request) throws Exception {// 根据请求路径动态返回对应的处理器方法if (lookupPath.startsWith(/test)) {Object handler getApplicationContext().getBean(CustomHandler.class);return new HandlerMethod(handler, handleTestRequest, HttpServletRequest.class, HttpServletResponse.class);}return null;}Overrideprotected HandlerExecutionChain getHandlerExecutionChain(Object handler, HttpServletRequest request) {HandlerExecutionChain chain super.getHandlerExecutionChain(handler, request); // System.out.println(super.getAdaptedInterceptors()); // chain.addInterceptor(new ApiInterceptor()); // 注册自定义拦截器ListHandlerInterceptor interceptors new ArrayList();return chain;}Overrideprotected boolean isHandler(Class? beanType) {return false;}Overrideprotected RequestMappingInfo getMappingForMethod(Method method, Class? handlerType) {return null;}Overridepublic RequestMatchResult match(HttpServletRequest request, String pattern) {System.out.println(request);System.out.println(pattern);return null;}Overridepublic int getOrder() {return Integer.MAX_VALUE;} } 还有一个具体的业务逻辑 Component Slf4j public class CustomHandler {public void handleTestRequest(HttpServletRequest request, HttpServletResponse response) {// 在这里编写处理特定请求的逻辑// 例如可以根据请求参数、请求头等信息进行动态处理try {log.info(方法request.getMethod());log.info(参数request.getParameterMap().values());response.setCharacterEncoding(UTF-8);response.setContentType(application/json; charsetutf-8);// 跨域设置response.setHeader(Access-Control-Allow-Origin, *);response.setHeader(Access-Control-Allow-Credentials, true);response.setHeader(Access-Control-Allow-Headers, Authorization);//这里很重要要不然js header不能跨域携带 Authorization属性response.setHeader(Access-Control-Allow-Methods, POST, GET, PUT, OPTIONS, DELETE);response.getWriter().write(JSON.toJSONString(ResultBody.ok().data(你好)));} catch (IOException e) {// 处理异常}} }以上就是一个动态api的逻辑了喜欢的可以走一下源码完善。在数据可视化这个方面这个用的还是蛮多。
http://www.dnsts.com.cn/news/64041.html

相关文章:

  • 个人网站设计论文范文成品视频直播软件推荐哪个好一点的
  • 西部建设网站0000网站建设
  • 网站开发流程详细介绍wordpress主题贝宝
  • 湘潭网站建设的公司网站部署到服务器
  • 网站建设的功能都需要有哪些深圳建筑人才网为什么电脑打不开
  • 做个什么网站做响应式网站代码
  • 福州长乐网站建设小学生抄写新闻20字
  • 上饶网站建设推广seo线下培训课程
  • 可以看所有网站的浏览器wordpress时间轴
  • redis网站开发教程怎样给公司做网站
  • 用php和mysql做网站中金超钒 网站建设
  • 住房和城乡建设部网站打不开网站建设青岛公司
  • 公司网站建设与维护工作计划注册网站发财的富豪
  • 企业网站模块字节跳动现有员工人数
  • 国内网站 备案京东网站的设计特点
  • 网站开发维护协议wordpress汉字注册
  • 闸北区网站建设网页制计算机网络技术就业方向专科
  • 用网站模板做新网站页面运营
  • 靖江 建设局网站初学者做电商怎么入手
  • 医院网站系统源码红叶网站开发工作室
  • 国外不织布网站做的教具广州天河发布公众号
  • 互联网科技公司网站陕西省住建网
  • 规范网站建设哪个平台查企业是免费的
  • 网站服务商排名啦啦啦中文免费视频高清观看
  • 网站建设公司 销量有哪些做设计交易网站
  • 两学一做网站源码百度官方网页
  • 济南企业网站建设关于h5的网站
  • 用python做网站的公司做ppt一般在什么网站好
  • 页面好看的网站ie不支持wordpress
  • 天津刘金鹏做网站什么类型的网站好做