- 博客(81)
- 资源 (1)
- 收藏
- 关注
原创 webmagic爬取网页
webmagic爬取网页1、对webmagic框架的认识webmagic框架是java开源的爬虫框架,封装了读取网页内容和操作html相关标签的方法,使用起来简单,上手很快。2、webmagic的使用2.1、pom文件配置<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>
2022-05-09 22:06:44
1415
原创 Netty学习要点
Netty学习要点1、UNIX的5种I/O模型2、epoll与select的对比3、私有协议栈可靠性设计4、ByteBuf和ByteBuffer对比6、Netty的线程模型7、Netty的高性能,可靠性,可定制性,可扩展性的分析8、多线程编程在Netty中的应用9、Netty的高性能分析10、Netty高可靠性设计UNIX的5种I/O模型: Linux...
2020-01-03 21:41:31
287
原创 spring boot手动提交事务
spring boot手动提交事务import org.springframework.jdbc.datasource.DataSourceTransactionManager;import org.springframework.transaction.TransactionDefinition;import org.springframework.transaction.Transact...
2019-11-16 16:16:33
4574
1
原创 spring boot的线程池配置
spring boot的线程池配置/** * 线程池配置 * */@EnableAsync @Configurationpublic class AsyncConfig implements AsyncConfigurer { //初始化@Async需要的线程池 @Override public Executor getAsyncExecutor() { ...
2019-11-16 16:08:48
272
原创 spring boot的接口参数校验
spring boot的接口参数校验@Api(tags= {"校验案例接口"})@RestController@RequestMapping("/validate")@Validatedpublic class ValidateDemoController { @Autowired private IValidateDemoService validateDemoService;...
2019-11-16 15:41:36
574
原创 spring boot返回统一处理
springboot返回统一处理/** * 统一的返回信息处理 */@SuppressWarnings({ "rawtypes" })@RestControllerAdvice("com.wuxin")public class MyResponseBodyAdvice implements ResponseBodyAdvice<Object> { /** * 不需要...
2019-11-16 15:17:51
161
原创 spring boot 的异常统一处理
spring boot 的异常统一处理/** * 全局的异常处理 * */@RestControllerAdvicepublic class GlobalExceptionHandler { private static Logger logger= LoggerFactory.getLogger(GlobalExceptionHandler.class); /**...
2019-11-16 15:10:56
123
原创 小程序后端token生成机制
小程序后端token生成机制以及与前端交互处理一、token的生成/*** 校验和创建token * @param userId * @param sign * @param timestamp * @return */public TokenRespVO checkoutAndCreateToken(String token,String userId, ...
2019-11-16 15:06:09
2732
原创 Java面试题汇总--内含阿里网易面试题
Java最全面试题–内含阿里网易面试题一、面试题精选博客本文为CSDN博主「二十-帅帅」的原创文章:史上最全面Java面试汇总(面试题+答案)
2019-11-16 13:58:36
1380
原创 NIO服务端创建过程
NIO服务端创建过程1、NIO服务端序列图步骤一: 打开ServerSocketChannel,用于监听客户端的连接,它是所有客户端连接的父管道。ServerSocketChannel acceptorSvr = ServerSocketChannel.open();步骤二: 绑定监听端口,设置连接为非阻塞模式。acceptorSvr.socket().bind(new InetSo...
2019-09-19 19:51:45
217
原创 Netty服务端创建过程分析
Netty服务端创建过程分析步骤一: 创建ServerBootstrap实例。步骤二: 设置并绑定Reactor线程池。Netty的Reactor线程池是EventLoopGroup,它实际就是EventLoop的数组。EventLoop的职责是处理所有注册到本线程多路复用器Selector上的Channel,Selector的轮询操作由绑定的EventLoop线程run方法驱动,在一个循环...
2019-09-01 17:30:23
166
原创 谈谈tcp中backlog参数
谈谈tcp中backlog参数 backlog指定了内核为此套接口排队的最大连接个数,对于给定的监听套接口,内核要维护两个队列:未连接队列和已连接队列,根据TCP三路握手中三个分节来分割这两个队列。服务器处于listen状态时,收到客户端syn分节(connect)时在未完成队列中创建一个新的条目,然后用三路握手的第二个分节即服务器的syn响应客户端,此条目在第三个分节到达前(客户端对服务端s...
2019-08-11 17:22:34
440
原创 Mac中fiddler抓包
Mac中fiddler抓包1、安装mono:访问mono的官网进行下载mono framework,由于该文件是国外的服务器,下载网络有点慢,有500多M,我这边采用的另外一种方式下载。1)用命令连接自己的一台香港服务器 ssh -p22 root@ip2)再用命令下载下来wget https://download.mono-project.com/archive/5.18.1/macos...
2019-04-21 11:52:07
925
原创 mysql的数据类型转换
mysql的数据类型转换1、CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。使用的类型有: 二进制,同带binary前缀的效果 : BINARY 字符型,可带参数 : CHAR() 日期 : DATE 时间: TIME 日期时间型 : DATETIME 浮点数 : DECIMAL 整数 : SIGNED 无符号整数 : UNSI...
2019-03-26 10:04:36
1249
原创 js常用方法
js常用方法1、获取url中的参数: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); ...
2019-03-21 15:55:00
131
转载 idea重构
idea重构Refactor 重构Signarture 签名Extract 提取Field 属性Constant 常量Method 方法Parameter 参数Surround 环绕重命名文件、方法、属性等(Rename):Shift+F6,同时被修改处在其他被调用的地方也会随之更改,修改文件名,如类名,右键当前类文件 -> Refactor -> Rename,便会...
2019-03-19 06:02:22
874
原创 TCP
TCP一、tcp粘包/拆包: 1、服务端分两次读取到两个独立的数据包,分别是D1和D2,没有粘包和拆包。 2、服务端一次接收到两个数据包,D1和D2粘合在一起,被称为TCP粘包。 3、服务端分两次读取到了两个数据包,第一次读取到了完整的D1包和D2包的部分内容,第二次读取到了D2包的剩余内容,这被称为TCP拆包。 4、服务端分两次读取到了两个数据包,第一次读取到了D1包的部分内容...
2019-03-17 17:33:30
296
原创 I/O模型和Java的三种I/O的区别
I/O模型和Java的三种I/O的区别一、I/O模型:1、阻塞I/O模型: 最常用的I/O模型就是阻塞I/O模型,缺省情形下,所有文件操作都是阻塞的。在进程空间中调用recvfrom,其系统调用直到数据包到达且被复制到应用进程的缓冲区中或者发生错误时才返回,在此期间一直会等待,进程在从调用recvfrom开始到它返回到整段时间内都是被阻塞的,因此被称为阻塞I/O模型。2、非阻塞I/O模型...
2019-03-11 23:02:48
289
原创 git操作
git操作一、添加项目:第一步:项目的外层目录下执行命令 git init第二步:在项目的目录下执行命令 git add ./nodejs-study/第三步:在项目的目录下执行命令 git commit -m 'first commit'第四步:执行命令 git remote add origin https://github.com/wuxin402/nodejs.git第五步:获...
2019-02-26 15:14:56
127
原创 nodejs总结
nodejs总结一、安装配置 npm config set prefix &amp;amp;amp;amp;amp;quot;F:\software\work\nodejs&amp;amp;amp;amp;amp;quot; --&amp;amp;amp;amp;amp;amp;gt; 指定安装的module放在哪个路径 npm config set cache &amp;amp;amp;amp;amp;quot;F:\so
2019-02-25 15:30:17
211
原创 windows下python中pip的安装
windows下python中pip的安装1、下载get-pip.py文件: 链接地址为:get-pip.py 2、运行该文件: 执行命令:python get-pip.py 3、配置环境变量: 执行上面命令后会下载pip,如果没有下载wheel和setuptools的话,会将这两个一起下载下来。这时在python的安装目录下生成Scripts目录和Lib目录,将Scri...
2019-02-14 14:26:07
574
原创 配置go的gocode,guru,godef
配置go的gocode,guru,godef一、配置gocodego get -u -v github.com/nsf/gocode默认下载的地址为:C:\Users\Administrator\go二、配置godefgo get -u -v github.com/rogpeppe/godef默认下载的地址为:C:\Users\Administrator\go三、配置gurug...
2019-01-15 20:21:45
5715
原创 fiddler使用
fiddler使用一、Content-type为application/x-www-form-urlencoded#请求头 User-Agent: Fiddler Host: localhost:8080 Content-Length: 153 Content-type: application/x-www-form-urlencoded#post请求传参方式title=测...
2018-12-28 15:47:14
162
原创 自动生成java代码
自动生成java代码一、引入依赖 &lt;dependency&gt; &lt;groupId&gt;com.baomidou&lt;/groupId&gt; &lt;artifactId&gt;mybatis-plus-boot-starter&lt;/artifactId&g
2018-12-24 16:19:20
344
原创 java8操作日期的工具类
java8操作日期的工具类一、方法概览 该包的API提供了大量相关的方法,这些方法一般有一致的方法前缀: of:静态工厂方法。 parse:静态工厂方法,关注于解析。 get:获取某些东西的值。 is:检查某些东西的是否是true。 with:不可变的setter等价物。 plus:加一些量到某个对象。 minus:从某个对象减去一些量。 to:转换到另一个类型...
2018-12-20 10:47:54
1027
原创 阿里云私服配置
阿里云私服配置 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirror
2018-12-09 22:06:27
879
转载 Mysql索引失效的原因
Mysql索引失效的原因1、最佳左前缀原则——如果索引了多列,要遵守最左前缀原则。指的是查询要从索引的最左前列开始并且不跳过索引中的列。2、不在索引列上做任何操作(计算,函数,(自动或者手动)类型装换),会导致索引失效而导致全表扫描。3、存储引擎不能使用索引中范围条件右边的列,范围之后索引失效。(< ,> between and)。这写条件判断最后放到后面,先定位到小的范围再开始...
2018-11-25 20:22:26
1814
转载 接口设计需要注意的地方
接口设计需要注意的地方一、接口版本化 生产环境中,如果没有版本控制的程序变更会导致调用接口的相关方频繁的跟着变更,假设相关方没有及时的跟着变更,那么系统就会报错,从而影响到用户的使用及体验,使其对整个系统的运营都是不利的,接口对接的难度也会不断的加大。 如果接口能够有版本的控制,则升级系统的主动权就掌握在相关方,这样当有新版本的程序发布时旧版本的业务逻辑不会受到影响,从用户感知上也受到的...
2018-11-23 21:44:11
2087
转载 MySQL的四种事务隔离级别
MySQL的四种事务隔离级别一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整...
2018-11-23 20:49:54
119
原创 Java面试时常用设计模式的用途
Java面试时常用设计模式的用途一、Adapter模式 在软件版本升级的时候,以前版本的软件已经通过测试了,为了兼容老的版本,这时用Adapter模式,可以轻松地同时维护新版本和老版本。实现方式:让新版本扮演Adaptee(被适配)角色,旧版本扮演Target角色,接着编写一个扮演,Adapter角色的类,让它使用新版本的类来实现旧版本的类中的方法。二、Builder模式 Buil...
2018-11-20 11:25:04
793
原创 sqoop导入和导出数据脚本
sqoop导入和导出数据脚本一、将mysql数据导入到Hivesqoop import \--connect jdbc:mysql://:3306/bd?characterEncoding=utf-8 \--username root \--password '' \--table tongji_1 \--delete-target-dir \--hive-import \--...
2018-11-18 16:43:02
997
转载 Hive执行中map的数量和reduce的数量怎么控制
一、 控制hive任务中的map数:通常情况下,作业会通过input的目录产生一个或者多个map任务。主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);举例:a) 假设input目录下有1个文件a,大小为780M,那么had...
2018-11-16 21:25:47
735
原创 kafka的特点和优势
kafka的特点和优势一、kafka的特点 高吞吐量:Kafka 每秒可以生产约 25 万消息(50 MB),每秒处理 55 万消息(110 MB) 持久化数据存储:可进行持久化操作。将消息持久化到磁盘,因此可用于批量消费,例如 ETL,以及实时应用程序。通过将数据持久化到硬盘以及replication 防止数据丢失。 分布式系统易于扩展:所有的 producer、broker 和 ...
2018-11-15 22:44:51
22117
原创 Hbase常用面试题和高级查询
Hbase常用面试题和高级查询一、HBase的工作方式 hbase表中的数据按照行键的字典顺序排序,hbase表中的数据按照行的的方向切分为多个region,最开始只有一个region 随着数据量的增加 产生分裂 这个过程不停的进行 一个表可能对应一个或多个region。region是hbase表分布式存储和负载均衡的基本单元 一个表的多个region可能分布在多台HRegionServer...
2018-11-15 17:01:34
1303
t_area_code_dict.sql
2019-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人