![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经验积累
文章平均质量分 76
宫羽卫-银飞羽
主要从事与Java后台开发,目前就职与上海美团公司作为后台开发,擅长于多线程并发开发、数据库设计、属性Spring、mybatis等基础主流框架。
展开
-
使用注解 日志打印
package com.dianping.credit.prevention.admin.aop;/** * 日志注解 * @Author: dainan * @Date: 2019/10/17 15:18 * @Description: */public @interface OperateLog {}切面代码package com.dianping.credit.prevention.admin.aop;import com.dianping.cat.Cat;im.原创 2020-11-16 11:24:08 · 368 阅读 · 0 评论 -
口令记法
类的加载:加载 --->验证--->准备---->解释---->初始化 (家燕准解初(飞))原创 2020-10-27 09:49:17 · 153 阅读 · 0 评论 -
多数据源分页查询
多数据源归并分页:请求链接为:/user/holding/list?userId={}&rows={}&limitTime={}limitTime:代表最后一条的时间从A、B中各取N条数据,合并后取时间戳最大的前N条,核心代码如下:List<Resp> queryPagedListByLimitTime(long userId, int rows, long limitTime) { List<Resp> totalList = new Ar原创 2020-07-08 16:55:05 · 2616 阅读 · 0 评论 -
下载表格
package com.dianping.credit.caselibrary.web.util;import org.apache.poi.hssf.usermodel.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletResponse;import java.io.OutputStream;import java.io.UnsupportedEnco.原创 2020-05-27 14:38:11 · 228 阅读 · 0 评论 -
剑指offer数据结构学习笔记
经典题目:树的遍历及变种地址链接:https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=11177&tPage=2&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fq...原创 2019-12-15 17:12:06 · 147 阅读 · 0 评论 -
切面日志打印
需求目的:对目前项目中的各种方法进行打印其日志信息,方便bug排查方法采用切面方法进行打印:设置注解类/** * 日志注解 */public @interface OperateLog {}设置切面类:@Aspect@Slf4j@Componentpublic class OperateLogAspect { /** * 打印日志 ...原创 2019-10-17 16:06:18 · 647 阅读 · 0 评论 -
常见问题总结:
1.java synchronized(object/this)的 区别:https://www.cnblogs.com/blogxiao/p/7694130.htmlsynchronized(object):线程之间是阻塞的synchronized(this):线程之间是不阻塞的简单理解为对object也加了一个锁2.了解公司业务的一种方法是看公司的一类别的业务代码3.设计一...原创 2019-02-14 10:51:12 · 197 阅读 · 0 评论 -
Java中六大时间类的使用和区别
关于java中六个时间类的使用和区别java.util.Datejava.sql.Date java.sql.Time java.sql.Timestampjava.text.SimpleDateFormatjava.util.Calendarjava.util.Date日期格式为:年月日时分秒 java.sql.Date日期格式为:年月日java.sql.Time日期...转载 2019-02-26 10:04:07 · 117 阅读 · 0 评论 -
为什么生产环境发布的代码有效果,但是测试环境没有效果
1.URL请求,当程序在代码中采用URl请求时候,一般线上有线上的URL请求,线下有线下的URL请求模式。例如:String host = requestId.contains("zeus-worker") ? "http://*************************": "*************************";采用这种情况时候请求,注意url2.权限没...原创 2019-03-04 14:11:31 · 1627 阅读 · 0 评论 -
java中方法的参数传递机制
自己写了一段代码:public class main { public static void testPara(Integer value ){ value++; } public static void test3(Student student){ student.setAge(1); } public static void main(...原创 2019-03-19 14:41:19 · 166 阅读 · 0 评论 -
List去重复方法总结
1.情况1,对于基础变量,采用set方式进行处理,demo:public List<String> hitZongBao(List<String> hitRules) { Set<String> result = new HashSet<>(); hitRules.forEach(hitRule -> {...原创 2019-03-18 10:32:50 · 563 阅读 · 0 评论 -
要想搞爬虫,看这篇就够了-------------记一次微博爬虫系统设计与实现
需求:用户喜欢在微博上发布*****的问题,但是由于人工处理的时效性原因,没法及时有效的对其中负面的信息做发现和回复,影响用户对于*******的认知感受。微博爬取的实现代码:/** * 根据不同关键字查询 * 根据URL获取网页信息 * * @param Url * @return */private ResponseEntity<String> get...原创 2019-04-16 15:11:37 · 914 阅读 · 0 评论 -
江西毕业生查询档案地址
http://www.jxjob.net/querydata/view/dacx/xada.jsp原创 2019-09-29 10:58:28 · 2732 阅读 · 0 评论 -
commom_lang源码笔记(总结)
1.StringUtils 图所表示:详细信息可以参考文章:https://www.jianshu.com/p/3c12ae6a4909判断是否为数字:StringUtils.isNumeric();判断是否为字母:StringUtils.isAlpha() ,数字字母isAlphanumeric(String str);数字字母空格isAlphanumericSpace()2.A...原创 2019-02-19 14:40:32 · 927 阅读 · 0 评论 -
深入理解AbstractQueuedSynchronizer(AQS)
https://www.jianshu.com/p/cc308d82cc71这篇文章写的非常详细:上图为AQS队列的示意图,从中可以反应出几个AQS的特点:1.AQS所有节点都在等待中,并且在自璇状态。节点的获取策略是FIFO2.AQS是一个双向链表,有两个指针,分别指向头节点和尾部节点上图代表的是AQS队列的获取到锁的过程,其特点是:1.首先获取的是头部节点,就是...原创 2019-02-13 15:06:48 · 327 阅读 · 0 评论 -
美团工作10个月心得
去年来的美团公司,一转眼就工作快10个月了,经历了很多,也慢慢的从学生身份变成了一个社会人。时间这么久了,对自己在美团工作的进行个总结,对自己个人也进行一个分析。效率: 在美团工作,效率很重要。在美团工作之前,我曾经在某研究所干过7个月。在研究所的时候,虽然工作时间长,但是其实没什么累,大家关系异常融洽。我个人觉得是,研究所的食堂的异常给力,大家经常去食堂吃饭,说说笑...原创 2019-02-27 16:08:29 · 11740 阅读 · 0 评论 -
UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)-转
继承、实现、依赖、关联、聚合、组合的联系与区别分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现指的是一个class类实现interface接口(可以是多个)的功能;实现...转载 2019-02-01 10:13:51 · 167 阅读 · 0 评论 -
Sentinel学习笔记(1)-- 流量统计代码解析
代码解析博客地址:https://www.jianshu.com/p/7936d7a57924结论图:总结:slot Chain 是整体的一个骨架结构,之间的传导数据是entry.所有slot Chain 获取的基本数据都在Entry中。Entry 代表着一个信号,代表一个请求的到来,若果没有报任何错误,就按照正常的时间框算法进行统计。可以看出Entry在统计这个数据中扮...原创 2019-02-01 16:16:19 · 1162 阅读 · 0 评论 -
类目中城市,省份可多选情况下数据库设计
需求背景:在很多场景中常见的情况:选择一些城市,城市是多选,省份是多选,且城市和省份是有层级关系。主要需求是,当选择一个城市范围,获取与该范围有交集的所有返回对象。例子:选择江苏,得查询数据库总江苏-(南京、扬州)、江苏、江苏-(南京)等。这个需求中层级只有两层、存在一对多的关系、需要根据ID去查询一棵树。解决方案:在sql反模式书中概括了常用解决该方案方法解决:参考:...原创 2019-01-29 15:23:47 · 1753 阅读 · 10 评论 -
项目需求确认要求
逻辑性:对需求的逻辑性进行判断,判断需求的逻辑性是否符合产品设计的效果。是否可以根据设计解决实际问题上下游:根据需求所要求的数据,判断数据的来源是否可以满足。每一个数据都要判断来源。功能性:判断产品提出的特殊功能是否可以实现,具体操作情况。ER图:对于功能复杂的设计最好有ER图出现,对整体逻辑进程确认。细节点把握:1.日期的精确度,是否时分秒2.必填和选填表...原创 2019-01-23 10:25:44 · 1838 阅读 · 2 评论 -
记一次项目delay的经过与分析
项目背景:本月初,老大的老大压下来一个项目,项目整体难度属于中等,但需要前端、后台、测试、PM共同推进。项目类似于功能简单的管理系统。难度在与一些特殊逻辑的处理。给予了两周时间开发,时间原本充足。时间经过: 某天早上上班,被叫去开会,开户内容产品经理就是将项目的大概逻辑说了,后台、前端都看了一下逻辑,对整体的要做什么有了一个大概的了解,就这这大概的了解,提出了一些不痛不痒的...原创 2018-12-28 17:30:39 · 1185 阅读 · 0 评论 -
后台数据传输校验
接收数据提倡使用restful风格的url。 通过提交的方式和资源来确定你要执行的功能;通过返回的状态码来确定执行成功还是失败。 post、delete、put、get;好处:全自动生成文档,更加直观。 putForObject、getForObject路径做参数、from表单参数、json参数。 指定方法响应的数据格式: @RequestMapping(value = "/some...转载 2018-12-28 11:54:46 · 1369 阅读 · 8 评论 -
JSON 处理map属性展开的问题
package com.dianping.credit.bean;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.annotation.JSONField;import com.fasterxml.jackson.annotation.JsonAnyGetter;import com.fasterxml.jack...原创 2018-12-25 11:49:01 · 1097 阅读 · 0 评论 -
一次关于多对多的场景的解决方案讨论
某对象属性存在三个属性都是数组类型,分别是数组A[],数组B[],和数组C[]。这三个属性互不相关。第一种设计:将list变成String,以逗号分割,以sql中like关键字作为查询。表结构设计:属性A 属性B 属性C ,x,y, ,x,y, ,x,y, 第二种设计:采用笛卡尔集形式,将所有字段拆成单个属性.这种方式查询简单,但是表内数据量大...原创 2018-12-10 17:07:52 · 459 阅读 · 0 评论 -
如何判断两个时间段是否有交集
如何判断两个时间段是否有交集文章目录参考给定两个左闭右开时间段 [A, B)、[X, Y),如何判断它们是否有交集?由于时间可以转换为时间戳,时间戳是一个数字,所以我们可以将问题转换为:如何判断两个左闭右开的数字区间是否有交集。结论是如果 X < B AND A < Y,那么有交集,证明过程见下方。数轴示意图这是一个不完善的、不容易思考的证明。我将他们...转载 2019-01-29 15:45:09 · 1141 阅读 · 0 评论 -
Druid源码的心得
Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser DruidDriver 代理Driver,在druid中这个Filter-Chain模式就是责任链模式,该模式可以参考文章:https://...原创 2019-02-15 14:43:38 · 1005 阅读 · 0 评论 -
关于数据库字段模糊查询
原始需求:数据库中存储了很多微信名称然后得进行模糊查询。Q1:为什么不进行一对多的设计,可以采用一对多的设计?A:有时候仅仅为了一个属性进行建立一张表,会将表的数量变多,在插入和查询时候进行大量的操作。数据库demo设计:CREATE TABLE `WeNickName` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMME...原创 2019-01-30 11:49:48 · 6485 阅读 · 0 评论 -
常用正则匹配验证正则匹配
只能输入数字:"^[0-9]*$" 只能输入数字和逗号只能以数字开头且以数字结尾:"^\\d+(,\\d+)*$"只能输入 n 位的数字:"^\d{n}$"只能输入至少 n 位的数字:"^\d{n,}$"只能输入 m ~ n 位的数字:"^\d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"只能输入有两位小数的正实数:"^[原创 2019-01-30 14:25:19 · 287 阅读 · 0 评论 -
自己JAVA开发工具
1.IDEA+阿里巴巴规范2.tomcat7+Java83.postman4.Visua Studio Code5.sublime6.nginx7.redix8.mysql + Sequel Pro9. 下载 homeBrew10.startUMl原创 2019-01-30 15:23:16 · 159 阅读 · 0 评论 -
剖析暴增流量下的限流算法和最强哨兵Sentinel
剖析暴增流量下的限流算法和最强哨兵Sentinel场景描述在复杂的生产环境下可能部署着成千上万的服务实例,当流量持续不断地涌入,服务之间相互调用频率陡增时,会产生系统负载过高、网络延迟,硬件负荷过载等一系列问题,从而导致某些服务不可用。如果不进行相应的流量控制,可能会导致级联故障,并影响到服务的可用性,因此如何对高流量请求进行合理控制,成为保障服务稳定性的关键。限流可通过对某一时间窗口内的...转载 2019-01-31 15:36:33 · 924 阅读 · 0 评论