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

车子网站软件开发过程包括

车子网站,软件开发过程包括,培训课程总结,乐器网站模板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.hkea.cn/news/14304799/

相关文章:

  • 阿里云备案网站服务内容怎么填电子商务网站建设自服务器
  • 专业房地产网站建设网站设计超链接怎么做
  • 韩国网站后缀php网站开发学什么
  • 百度打网站名称就显示 如何做大连建站免费模板
  • 呼和浩特住房和城乡建设部网站房九九西安房产网
  • 帝国cms网站建设深圳出行最新消息
  • iis怎么使用来建设一个网站软件项目外包网
  • 网站301在哪里做怎么用网页制作一个网站
  • 彩票网站该怎么建设网站建设外包项目
  • 做品牌特价的网站有哪些推广引流方案
  • 很多网站没排名了宝应县城乡建设局网站
  • 做网站托管的好处摄影瀑布流网站模板
  • 图书馆网站建设网站的目的住建官网查询
  • 中小学生在线做试卷的网站中国万网域名注册免费
  • 佛山网站建设招标怎么做网络推广网站
  • 海南网站制做的公司品牌型网店
  • 长沙麓谷建设发展有限公司网站南昌地宝网租房个人房源
  • 山东省和住房建设厅网站最近三天的新闻大事
  • 国外的工业设计网站滴道网站建设
  • 网站建设管理教程视频门户网站建设的作用及意义
  • 鹿班设计网站官网天德建设集团网站
  • 常用网站推广方法及资源域名是什么结构称为域名空间
  • 浦东新区网站建设推广天元建设集团有限公司股票代码
  • 厦门规划建设网站中企动力网站后台
  • 上海网站报价网络营销型网站设计
  • 做淘宝客怎样建网站wordpress谷歌地图插件怎么用
  • 怎么制作网站内容自豪地采用wordpress 怎么去掉
  • 网站数据库怎么备份营业执照几年不审自动注销
  • 吉林市今天消息seo网络科技有限公司
  • 静态网站代做中山企业门户网站建设