自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (2)
  • 收藏
  • 关注

原创 设计模式之工厂模式

抽象工厂的组成和方法工厂的组成是一样的只不过抽象工厂不再只负责一个产品的创建,而是负责一组产品的创建,很简单,星巴克不仅仅卖咖啡还卖蛋糕只需要在抽象工厂类中新增创建蛋糕的抽象方法就行。在这种模式中,每一个工厂不再只负责一个产品的创建,而是负责一组产品的创建。以下是具体的代码实现。我们可以建一个经典咖啡的工厂类用来返回不同类型的咖啡。简单工厂模式定义一个生产对象的工厂类,使用者可以根据不同参数返回不同的子类,这些子类公用一个接口。工厂方法模式包含四种类,分别是抽象产品类、具体产品类、抽象工厂类、具体工厂类。

2024-02-25 19:25:50 548

原创 Spring 中最常用的 11 个扩展点

spring mvc拦截器根spring拦截器相比,它里面能够获取和等web对象实例。,包含三个方法:preHandle 目标方法执行前执行postHandle 目标方法执行后执行afterCompletion 请求完成时执行为了方便我们一般情况会用接口的实现类类。假如有权限认证、日志、统计的场景,可以使用该拦截器。第一步,继承@OverrideSystem.out.println("拦截器");

2023-01-16 10:50:35 710

原创 Spring Security 401 问题解决

背景 : 微服务接口调用的时候报错,原来有一个rest服务用的不多,平时用的都是一些基础的服务,然后客户需要我们开放一个外部接口给他们,然后我寻思着就在这里面写接口。然后调用的时候就报如下的错。最后看了一下nacos关于auth服务的数据源配置发现这个数据库配的是一张测试库的地址。更改一下nacos的数据源配置为正确的数据源地址后问题解决。这个错误在控制台是看不到的。断点继续走会进入到AuthenticaionProvider里面这是一个接口。这个接口的实现类很多如下图。

2022-12-29 17:07:50 2104

原创 程序员养身指南

皇帝内经:素问·阴阳应象大论篇第五原文:黄帝曰:阴阳者,天地之道也,万物之纲纪,变化之父母,生杀之本始,神明之府也。治病必求于本。故积阳为天,积阴为地。阴静阳躁,阳生阴长,阳杀阴藏。阳化气,阴成形。寒极生热,热极生寒;寒气生浊,热气生清;清气在下,则生飧泄,浊气在上,则生䐜[chēn]胀。此阴阳反作,病之逆从也。  故清阳为天,浊阴为地。地气上为云,天气下为雨;雨出地气,云出天气。故清阳出上窍,浊阴出下窍;清阳发腠理,浊阴走五藏;清阳实四支,浊阴归六府。  水为阴,火为阳。阳...

2022-04-28 09:51:32 328

原创 程序员养身指南

黄帝内经:素问·金匮真言论篇第四原文:黄帝曰:天有八风,经有五风,何谓?  岐伯对曰:八风发邪,以为经风,触五藏,邪气发病。所谓得四时之胜者:春胜长夏,长夏胜冬,冬胜夏,夏胜秋,秋胜春,所谓四时之胜也。  东风生于春,病在肝,俞在颈项;南风生于夏,病在心,俞在胸胁;西风生于秋,病在肺,俞在肩背;北风生于冬,病在肾,俞在腰股;中央为土,病在脾,俞在脊。  故春气者,病在头;夏气者,病在藏;秋气者,病在肩背;冬气者,病在四支。  故春善病鼽衄,仲夏善病胸胁,长夏善病洞泄寒中,秋善病风疟,

2022-04-26 20:26:16 182

原创 程序员养身指南

皇帝内经:素问 生气通天论篇第三原文: 黄帝曰:夫自古通天者,生之本,本于阴阳。天地之间,六合之内,其气九州、九窍、五藏、十二节,皆通乎天气。其生五,其气三。数犯此者,则邪气伤人,此寿命之本也。  苍天之气,清净则志意治,顺之则阳气固,虽有贼邪,弗能害也。此因时之序。故圣人传精神,服天气,而通神明,失之则内闭九窍,外壅肌肉,卫气散解,此谓自伤,气之削也。  阳气者若天与日,失其所,则折寿而不彰故天运当以日光明,是故阳因而上,卫外者也。  因于寒,欲如运枢,起居如惊,神气乃浮。因于...

2022-04-26 20:15:38 200

原创 程序员养身指南

皇帝内经:四气调神大论篇第二原文:春三月,此谓发陈,天地俱生,万物以荣,夜卧早起,广步于庭,被发缓形,以使志生,生而勿杀,予而勿夺,赏而勿罚,此春气之应,养生之道也。逆之则伤肝,夏为寒变,奉长者少。  夏三月,此谓蕃秀,天地气交,万物华实,夜卧早起,无厌于日,使志无怒,使华英成秀,使气得泄,若所爱在外,此夏气之应,养长之道也。逆之则伤心,秋为痎疟,奉收者少,冬至重病。  秋三月,此谓容平,天气以急,地气以明,早卧早起,与鸡俱兴,使志安宁,以缓秋刑,收敛神气,使秋气平,无外其志...

2022-04-26 19:58:53 303

原创 程序员养生指南

皇帝内经·上古天真论篇第一原文:昔在黄帝,生而神灵,弱而能言,幼而徇齐,长而敦敏,成而登天。乃问于天师曰:余闻上古之人,春秋皆度百岁,而动作不衰;今时之人,年半百而动作皆衰者,时世异耶,人将失之耶。  岐伯对曰:上古之人,其知道者,法于阴阳,和于术数,食饮有节,起居有常,不妄作劳,故能形与神俱,而尽终其天年,度百岁乃去。今时之人不然也,以酒为浆,以妄为常,醉以入房,以欲竭其精,以耗散其真,不知持满,不时御神,务快其心,逆于生乐,起居无节,故半百而衰也。  夫上古圣人之教下也,皆谓之虚邪贼风,

2022-04-26 19:18:02 419

原创 springboot项目文件大小和类型设置

背景:文件上传的时候文件超过1M的时候就提示:‘文件大小超过限制’ view代码发现有一个全局拦截器@ExceptionHandler(value = MaxUploadSizeExceededException.class)public Result maxUploadSizeExceededExceptionHandler(MaxUploadSizeExceededException e){ log.error(e.getMessage()); return Result.err

2021-12-07 17:44:03 840

原创 linux 命令使用总结

1.查看cpu占用top -c第一行,任务队列信息,同 uptime 命令的执行结果系统时间:19:24:10运行时间:up 15days,1:58 min当前登录用户: 1user负载均衡(uptime) load average: 1.56, 4.83, 6.70 average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数...

2021-12-02 20:57:13 135

原创 idea配置docker远程访问

1.linux中配置docker开启远程访问信息 vim /usr/lib/systemd/system/docker.service #修改ExecStart这行 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock #重新加载配置文件 systemctl daemon-reload #重启服务...

2021-12-01 20:07:41 205

转载 Redis、Nginx、RabbitMQ、MongoDB、Elasticsearch、Logstash、Kibana在linux下的部署

本文主要以图文的形式讲解mall在Linux环境下的部署,涉及在Docker容器中安装MySQL、Redis、Nginx、RabbitMQ、MongoDB、Elasticsearch、Logstash、Kibana,以及SpringBoot应用部署,基于CenterOS7.6。转载自DocumentDescriptionhttp://www.macrozheng.com/#/deploy/mall_deploy_docker安装过程中遇到个别问题作了些许调整。方便以后查找记录。Docker环...

2021-12-01 15:05:12 309

原创 JAVA8 lambda按指定字段去重

childList = childList.stream().collect( Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.get("id").toString()))), ArrayList::new))使用到了collectingAndThen完成根据属性进行去重的操作,对于该去重操作的关键使用到了.

2021-11-22 10:25:49 4361

原创 java泛型T与<T>T的使用区别

java 泛型 T与<T>T的使用区别

2021-11-18 10:16:21 250

原创 从零开始学习spring(一)

学习Spring的目的1)方便解耦,简化开发Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给 Spring 管理。2)方便集成各种优秀框架Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如 Struts2、Hibernate、MyBatis 等)的直接支持。3)降低 Java EE API 的使用难度Spring 对 Java EE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等)都提供了封装,使这些 API 应用的难度

2021-11-11 15:32:27 514

原创 使用Optional:解决NPE问题的更优雅的写法

1.使用背景避免产生很多的循坏if调用,使得代码更清晰易懂。反列: if (query!= null) { Result result = query.getResult(); if (result != null) { User user = result.getUser(); if (user != null) { return user.getName();

2021-11-04 14:56:06 145

转载 为何不使用自动创建线程池呢?

其实手动创建是更好的。因为这样一来可以让我们非常明确线程池的运行规则,避免资源耗尽的风险。我们就来看一看,如果我们自动创建的话会有哪些风险?这同时也是让我们熟悉一下 JDK 提供给我们的那些非常典型的线程池。FixedThreadPool首先来用代码展示一下 newFixedThreadPool。在这里我们新建一个 FixedThreadPoolDemo类。在该程序中演示如何利用 FixedThreadPool 线程池执行任务。具体代码如下:public class FixedThre

2021-10-21 14:19:26 353

转载 Flowable常用工作表注释

1. Flowable数据库表命名规则ACT_RE_*’RE’表示repository(存储)。RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。ACT_RU_*’RU’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。ACT_ID_*’ID’表示ident

2021-10-16 10:29:42 1065

转载 MySQL 分库分表的几种解决方案

一、分表对分页的影响比如有一张表,里面有8条记录(为简单起见,假设该表上只有1个自增ID),数学上可以抽象成1个(有序)数列(注:为方便讨论,不加特殊说明的情况下,文本中数列的顺序,均指升序)(1,2,3,4,5,6,7,8)如果要取出上面红色标识的2,3这二条记录,limit 1,2 就行了。现在假如分成2张表(即:原来的数列,拆分成2个非空子数列),一般来讲,有二种常用分法:1.1 分段法(比如:有时间属性的数据,类似订单这种,可以按下单时间拆分,每个月1张表)(1,2,3,4)

2021-10-11 15:05:31 979

原创 Spring Security Oauth2 执行流程剖析

1.工作原理及过程OAuth 2.0的运行流程如下图本篇案列主要基于授权码模式(authorization code)一下是授权码模式的运行流程如下图2.时序图展示3.核心源码解析基于spring security Oauth2主要就三个类:1.AbstractAuthenticationProcessingFilter 主要是用来对用户的访问请求进行拦截认证的入口2.AuthorizationEndpoint 主要是匹配授权模式(1.授权码模式 2...

2021-09-18 10:35:19 1895

原创 跨窗口浏览器通信方式实现交互

1.需求背景新老系统交互,从新系统页面跳转到老系统页面后,老系统页面关闭,新系统页面需要同步刷新。2.1.1 解决方案(1)老系统代码使用window.opener实现窗口通信var msgData = { type: 'returnCallBack' }window.opener.postMessage(JSON.stringify(msgData), '*')新系统代码使用window.addEventListener实现消息监听 window.addEventList

2021-09-07 11:14:56 431 1

原创 面试那些事(三)

目录1.多线程的锁升级过程知道是什么样的吗?2.什么是偏向锁?3.为什么要引入轻量级锁?4.偏向锁的和轻量级锁的升级过程是怎样的?5.轻量级锁和重量级锁的应用场景。6.你刚刚提到了cas,给我讲一讲你了解的cas是怎样的?7.你知道cas的缺陷是什么吗?8.讲一讲synchronized的实现原理9.synchronized和ReentrantLock的区别1.多线程的锁升级过程知道是什么样的吗?Java SE 1.6为了减少获得锁和释放锁带来的性能消耗,引.

2021-05-23 11:23:37 81

原创 面试那些事(二)

我发现最近已经慢慢喜欢上了这种状态。啥事不干,看看书,看看视频 然后去面试跟面试官吹牛皮。但是大部分时间都是被吊打。。今天又面了两家 ,一家是互联网主要做电信bbs的。还有一家是国家电网的。。今天先复盘一下电信bbs的吧。问了挺多的东西,很多都不会 - -,终究还是太菜了。在这里忠告各位小伙伴平时要多积累。多学习。不吃学习的苦,就要吃生活的苦ε=(´ο`*)))唉。1、我看你这上面使用过Elasticsearch介绍一下你了解的es?es是一个使用java语言编写的并且基于Lucen..

2021-05-19 22:42:22 127

原创 面试那些事(一)

最近裸辞了,就觉得解脱了好嗨哦!终于不要再看到领导丑恶的嘴脸!终于可以不要再逼着加班啦!终于周末可以好好的睡一觉了!本来计划的是找好之后再离职。可是发现根本就没时间去准备!每天的时间都被安排的满满的,下班回来都11-12点了。哪有心思去学习。。。于是深思熟虑终于提出了离职。领导也很干脆,2天交接结束!然后就是刷简历、面试不停循环 = =。今天去面了一家互联网企业把遇到的一些问题都记下来ε=(´ο`*)))1.讲一讲ConcurrentHashMap的底层实现说到Concurren

2021-05-18 21:42:55 255 2

原创 路漫漫其修远兮

我们了解学习一个新的知识或者技术的时候都会遵循三个步骤 :理解 、巩固 、运用所谓理解是建立在认识的基础上,通过自己联想、类比等方法快速的了解这个新的事物。所谓巩固就是通过不断的练习来加固自己对该知识或者技术的掌握。所谓运用是在遇到一个问题时能够快速的用自己学到的新的知识或者技术来解决这个问题。其实前面2点大部分人都很容易做到。但是第三点大部分人就很难做到。这是为什么呢?其实这也...

2020-01-16 23:03:04 156

原创 从0到1构建分布式秒杀系统(1)从秒杀看ThreadPoolExecutor和CountDownLatch

CountDownLatch代码@ApiOperation(value="秒杀一(最low实现)",nickname="科帮网") @PostMapping("/start") public Result start(long seckillId){ int skillNum = 10; final CountDownLatch latch = new CountDownLatc...

2019-10-23 11:51:30 361

原创 从0到1构建分布式秒杀系统,脱离案例讲架构都是耍流氓

嗯嗯,好长时间不更新博客了,感觉整个人都颓废了哈哈,不过呢我还是蛮怀恋这种指尖在键盘上敲打的感觉的。最近闲来无事,就在码云上看看有没有什么比较小的开源项目来学习学习(内容太多看不下去= =看了半天看到这么一个项目)瞬间被吸引了,感觉挺牛般的,fork,star,download 三连击,下载,部署环境搞了老半天终于搞好了,然后运行测试美滋滋。以上都是废话= =,言归正传。我今天主要就聊...

2019-10-22 21:34:21 184

转载 定时器的使用场景分析

先来看一段面试中的场景面试官: 我看你已经有一定工作年限了,那请问有没有研究得比较深的一些技术栈呢?你: 目前没有太深的研究,暂时还主要是处于会使用的阶段,我用过xxx,能干活肯定是没问题的!面试官: 那定时器在项目中有用过吗,平时都是怎么使用的?你: 当然有,我们是基于SpringBoot做的定时器,使用很简单,就是打上注解就行.面试官: 既然你有使用过,那...

2019-04-12 09:17:42 4138

原创 关于调用第三方接口时传递参数是File类型的解决方式

最近在做一个项目,需要频繁的调用第三方的接口,本以为都是基本的数据类型,没想到需要传一个文件类型的参数,我想着调用接口的时候直接用文件流把文件写到connection不就行了,这就是我一开始写的调用工具类 public static String sendGetFile(String url, MultipartFile file) { String result = ...

2019-04-11 17:12:22 13326 3

转载 key up事件延迟加载

1 var keyDom = document.getElementById('keyDom'); 2 //全局的一个变量,可被每次触发的事件函数重新修改赋值 3 var lastTimeStamp = 0; 4 keyDom.addEventListener('keyup',function(event){ 5 //标记当前事件函数的时间戳 6 lastTime...

2019-03-05 15:51:24 181 1

转载 关于maven pom文件的那些事

前言  项目中用到了maven,而且用到的内容不像利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)用的那么简单;maven的核心是pom.xml,那么我就它来谈谈那些不同的地方;  给我印象最深的就是如下四个元素:modules、parent、properties、import。  路漫漫其修远兮,吾将上下而求索!  github:ht...

2019-02-27 20:38:23 133

转载 springboot资料

https://segmentfault.com/a/1190000013849884

2018-10-31 15:47:29 203

原创 项目开发常用技术总结

最近整理了一些开发中常用的技术,分享一下个人的心得,如有不对之处,欢迎指出。目录1.shiro权限控制在项目中的使用2.java反射技术比较实体类字段的不同3.jeesite框架Apache Commons Email的使用4.jeesite框架excel表的导入导出5.json对象和字符串的相互转换     5.1 jsp页面中json对象和字符串的转换     ...

2018-09-29 09:21:42 3409

原创 jqgrid表格高度宽度设置

# jqgrid表格高度宽度设置## 问题说明&gt; 页面上使用上面搜索框,下面是jqgrid表格形式,总是出现,grid表格加载宽度、高度问题。本文通过主要解决表格高度宽度变化适应的问题。## grid宽度1. 修改文件jeesite.min.js,里面的 `changeGridTable````$.changeGridTable = {        changeStyle: functio...

2018-06-28 15:01:19 17512

原创 oracle与mysql常用区别整理

一、批量新增 2二、批量修改 3三、模糊查询 3四、无效字符 4五、日期 5六、获得当前主键操作 6七、字段类型的区别 7八、单引号的处理 10九、翻页的SQL语句的处理 10十、长字符串的处理 10十一、空字符的处理 11 一、批量新增mysql中支持insert into xxx values (?,?),(?,?) 。例如:&lt;insert id="saveEntity" paramet...

2018-06-28 14:57:50 773

转载 java.util.ConcurrentModificationException的解决办法

大家应该都知道, 在java中, 在对一些集合迭代的过程中对集合进行一些修改的操作, 比如说add,remove之类的操作, 搞不好就会抛ConcurrentModificationException,前几天在项目中,终于碰到了这个异常。在单线程操作的情况下,在DAO层查询到数据集合后,返回到service层做业务处理,要求:遍历数据集合,判断不符合条件的元素,做删除操作。在用foreach和 I...

2018-03-15 20:02:59 200

原创 在做程序员的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?

凭借着优秀的搜索素养,复制黏贴,拿来主义的能力(我不是在讽刺,这是一种编程必须的能力),成功地解决了一个又一个陌生的需求。关于搜索技巧   任何一个开发人员,都应当具备搜索能力,甚至是一定要具备搜索能力,搜索引擎的宝藏,是无穷无尽的,同样具备搜索意识的不同程序员,却因为搜索技巧的差异最终在程序开发质量、项目实施效率、甚至是工程产品质量上出现数倍的差异,因此,掌握高效、先进、灵活的搜

2018-01-31 14:49:47 1371 1

原创 ace File-Input实现图片上传功能+colorBox显示图片

1.前台jsp页面 示例图片: <a href="${location}" data-rel="colorbox" style="line-height:20px;font-family:黑体;text-decoration: underline;

2018-01-31 09:29:28 6842 1

原创 maven项目我踩过的那些坑

昨天老大叫我把之前另一个部门的一个web项目转成maven项目上传到svn上,虽然工作了一段时间,但是对maven这东西了解真不多,然后在转pom.xml文件中添加依赖时遇到了一些问题,百度了一下相关资料,算是学习到了些关于maven的一些知识,专门记下,给那些后来的人少踩一些坑。第一个坑:Spring java.lang.NoSuchMethodError: org.springframew

2018-01-24 16:00:51 489

原创 java反射机制比较同类对象的不同字段

最近在做一个项目中需要实现一个产品的升级中的变更记录查看,写了一个反射方法来记录对象中不同的字段内容,记录下来以备后来参考。public ListcompareDetails(Object obj){      //存放新旧对象改变的内容 List list = new ArrayList();      //新的对象  Object newV

2017-12-13 10:30:22 2025

图书管理系统

2017-03-28

Spring+mybaits+Springmvc

Spring+mybaits+Springmvc

2017-03-24

空空如也

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

TA关注的人

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