自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 selenium整合scrapy进阶版

scrapy整合selenium1. 基本介绍​ selenium在解决js动态加载以及反爬虫措施比较多的网站有奇效,将其整合scrapy可以大大提高我们爬取的效率2. 代码编写2.1 spider类from selenium import webdriverfrom selenium.webdriver.chrome.options import Options def __...

2019-03-21 18:01:07 382

原创 跳跃表之java实现

跳跃表是一种特殊的单向有序链表,redis中zset在数据量大时就采用了这种数据结构。添加,删除,查询的时间复杂度都为O(logn)package algorithm.array_linked;import lombok.Data;import java.util.*;/** * @Author: M˚Haonan * @Date: 2022/1/20 10:54 * @Description: 跳表 * 跳跃表是一种特殊的有序链表,利用空间换时间,通过多层索引加快链表的检索速度

2022-01-21 11:03:48 989

原创 mac快速切换jdk版本终极方案(重启终端也生效)

基于 zsh 终端,以 jdk8 和 jdk11 为例一. 网上的解决方案安装 jdk8 和 jdk11这个就不再赘述了,百度即可配置文件写入环境变量在 zshrc 中设置环境变量vim ~/.zshrcexport JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)export JAVA_11_HOME=$(/usr/libexec/java_home -v11)export JAVA_17_HOME=$(/usr/libexec/java_hom.

2022-01-07 18:26:18 2554 2

原创 九. springmvc之其他组件

springmvc之其他组件一. LocaleResolverLocaleResolver的作用是使用request解析出Locale。主要是配合视图渲染来使用的,在DispatchServlet中有如下的代码protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response) throws Exception { // Determine locale for reques

2021-06-22 19:58:05 296

原创 八. springmvc之MultipartResolver

springmvc之MultipartResolver一. 概述上传文件的组件,主要分为以下两种方式:StandardServletMultipartResolver和CommonsMultipartResolver,前者采用Servlet3.0标准的上传方式,后者则使用了Apache的commons-fileupload二. 源码分析2.1 MultipartResolverboolean isMultipart(HttpServletRequest request);MultipartH

2021-06-22 19:57:30 1006

原创 springmvc之编码问题(只看这一篇就足够了)

分析基于springboot 2.2.1,其他版本源码可能略有区别编码问题在编程中我们经常遇到中文乱码问题,主要分为以下几种:返回一个页面返回一个string类型且方法注释了@ResponseBody注解返回一个json数据且方法注释了@ResponseBody注解下面依次看看每种情况1.1 返回页面乱码这种情况在springboot中已经看不到了,因为springboot已经帮我们做了编码的自动配置为utf-8首先看看正常页面编码是如何设置的:在HttpEncodingAuto.

2021-06-22 16:21:48 547

原创 七. springmvc之HandlerExceptionResolver

springmvc之HandlerExceptionResolver一. 概述HandlerExceptionResolver用于解析请求处理过程中所产生的异常。public interface HandlerExceptionResolver { @Nullable ModelAndView resolveException( HttpServletRequest request, HttpServletResponse response, @Nullable Object handle

2021-06-18 18:24:54 2165 1

原创 六. springmvc之RequestToViewNameTranslator

springmvc之RequestToViewNameTranslator一. 概述RequestToViewNameTranslator可以在处理器返回的view为空时使用它根据request获取viewName。这个组件的实现非常简单,只有一个实现类DefaultRequestToViewNameTranslator这个组件不是很常用,这里简单分析下二. 源码分析2.1 在DispatchServlet中的体现在DispatchServlet中,如下的方法使用到了这个组件applyDefa

2021-06-18 18:24:25 361

原创 五. springmvc之ViewResolver

springmvc之ViewResolver一. 概述​ ViewResolver是根据视图名和Locale解析出视图。在传统的web项目中,jsp,ftl等页面的渲染生成都是由ViewResolver来完成的。但是随着前后端分离项目的流行,该组件的使用已经越来越少。​ 本文主要分析下ViewResolver的原理及执行流程,纪念一下渐渐退出历史舞台的组件。二. 源码分析ViewResolver在DispatchServlet中的使用见如下代码:// Did the handler return

2021-06-18 18:23:50 647

原创 四. springmvc之HandlerAdapter

springmvc之HandlerAdapter一. 概述​ 前面HandlerMapping的作用是根据request找到Handler。通过分析我们也知道Handler可能有很多种,我们自定义的类,方法,还有springmvc给我们内置的一些。每种Handler的调用方式都不尽相同,因此就需要HandlerAdapter。​ 顾名思义,HandlerAdapter是一种适配器,对于某种类型的Handler,都有一种对应的Adapter,用来完成对Handler的调用。// Deter

2021-06-18 18:22:35 1779

原创 三. springmvc之HandlerMapping

springmvc之HandlerMapping一 概述HandlerMapping的作用是根据request找到对应的处理器Handler@NullableHandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;二. 源码分析HandlerMapping家族成员如下所示:通常我们使用的是RequestMappingHandlerMapping接下来分析下整个家族的实现方式,另外一条继承线

2021-06-18 18:21:27 352

原创 二. spingmvc之整体处理流程

spingmvc之整体处理流程一. 概述springmvc对请求的处理主要是围绕DispatchServlet展开的。一个请求进来以后,首先经过tomcat的一系列处理,然后根据不同的请求类型,servlet不同的方法,例如get请求调用doGet()。springmvc在处理该请求的过程中,先找到处理该请求的Handler,即我们编写的业务方法;接着找到调用该Handler的HandlerAdapter;然后执行handler;接着利用ViewResolver对视图进行解析,最后封装成respons

2021-06-18 18:20:50 154

原创 一. springmvc源码之启动流程

springmvc源码之启动流程一. 说明源码基于Springboot2.2.1分析,并且围绕DispatchServlet相关进行分析,其余关于spring的未做探讨。参考资料:《看透 Spring mvc:源代码分析与实践》韩路彪二. 启动流程2.1 综述​ SpringMvc的核心类是DispatchServlet,可以说web应用的整个流程都是围绕DispatchServlet展开的。而springmvc又是依赖于spring 的一个子容器,spring为springmvc提供了便捷的对

2021-06-18 18:17:01 427

原创 数组实现的环形队列

数组实现的环形队列利用数组实现的环形队列,主要方法和思考过程都在代码里面。package algorithm.structure;/** * @Author: M˚Haonan * @Date: 2021/1/9 18:08 * @Description: 数组实现的环形队列 * 这种环形队列,队列的容量是要比数组长度少1的,因为只有留下一个空余空间,才能判断出来是满还是空 * 如果全占,满和空的时候两个指针都是重叠的,没法判断 */public class ArrayQueue

2021-01-10 17:36:21 147

原创 rocketMq事务消息理解(结合springboot)

rocketmq事务消息一. 问题由来首先要弄懂一个概念:在事务中,一个方法执行结束(最后一行执行完了),此时事务不一定执行成功,直到所有的事务提交mysql,mysql事务执行成功了,才算事务执行成功因此,在业务中,尝尝会遇到如下情况:本地业务事务执行成功了,消息发送失败了本地事务执行失败了,但是消息却发送成功了这两种情况都会造成不同系统之间消息的不一致性,比如订单系统下单成功了,库存系统却没有减库存。或者下单失败了,库存却减了,这种都是不符合业务需求的二. 事务消息事务消息

2020-12-31 18:36:07 720 1

原创 MOD 11,10算法(python版本)(GB/T 17710-1999 校验码算法)

一. 算法描述二. python代码实现本代码经过多个实际食品经营许可证号码验证,确认正确,可直接复制使用# 求Pndef getPn(n, arr1): if n == 1: return 10 else: return mod10(getSn(n - 1, arr1)) * 2# 求特定的取余10的结果def mod10(nu...

2019-03-13 16:24:41 2962

原创 springboot热部署

基本介绍spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。使用方法开发环境:idea导入jar包 <dependency> <groupId>org.springframework.boot</groupId> ...

2019-02-14 14:19:04 119

原创 xlrd读取excel工具类(适配大量模版)

xlrd读取excel工具类一. 工具类代码# 工具类import xlrdimport refrom datetime import datetimefrom xlrd import xldate_as_tupleclass ExcelExport: """ 本类是读取excel的工具类,封装了读取excel常用的方法,主要借助xlrd的方法 &am

2019-01-08 18:08:07 398

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除