个人项目
文章平均质量分 69
等那时夕颜
这个作者很懒,什么都没留下…
展开
-
java图片合并以及去除底部白边
背景最近有实现一个需求。会产生多张图片,这些图片的宽度一直,然后要进行拼接,拼接成一张长的图片返回。代码实现 /** * 底部截取白色 * 通过x,y坐标从下到上,如果该X轴上所有的点都是白色,就判断这一行需要截取,直到没有白色为止 * @param img * @return */ public static int getHeight(BufferedImage img) { int trimmedHeight = 0原创 2021-04-14 22:15:20 · 797 阅读 · 0 评论 -
2020年末总结
之前在的公司之前在菜鸟外包。有幸从零开始用spring cloud写了一个快递收件相关的业务。对于整个微服务体系的使用有了一些自己认识和理解。的简单。分库分表,redis,rocketmq,nacos等等中间件都有了一些自己的认识。单量也大约每日有500w左右。不说最佳实践,也算是有所实践吧。离职今年4月离开了菜鸟的外包公司。离职理由只是单纯的外包呆的很不稳定。而且项目也写的差不多了。不走也是被换项目组,和离职没啥区别。不如自己主动点。后面就开始找工作了。全托了今年疫情这个黑天鹅。导致我跳槽之后的市原创 2020-12-22 23:10:07 · 301 阅读 · 2 评论 -
spring cloud脚手架项目(十六)开发HTTP API 接口签名验证
前言最近有给写一个开发接口给第三方用。也趁机学习了一下有关如果提供一个接口的验签的过程也有参考到这篇文章:https://mp.weixin.qq.com/s/VJX6h2Fl_a5N3iCWe777nA如何接口安全问题需要解决3个问题:请求身份是否合法?请求参数是否被篡改?请求是否唯一?请求身份为开发者分配accessKey(开发者标识,确保唯一)和secretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。防止篡改按照请求参数名的字母升序排列非空请求参数(包含Acces原创 2020-11-20 11:55:05 · 537 阅读 · 1 评论 -
spring cloud脚手架项目(十五)比简单责任链复杂一些的责任链实现
前言之前有介绍过简易的责任链的实现方式,今天再介绍上一个责任链的升级版本代码实现通用接口类public interface TestComponent { void execute(Context context);}4个实现类import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;@Slf4j@Componentpublic class OneTestCompone原创 2020-11-02 20:09:46 · 286 阅读 · 0 评论 -
spring cloud脚手架项目(十三)Fegin微服务应用之间请求追踪链路开发
前言在之前的一篇文章中,我写了一个aop日志打印的功能,通过注解的实现,可以让接口直接打印出入参和出参,并且在日志上添加uuid。因为当服务器的请求很多的时候,会发现日志都挤在一起,自己都不知道这个日志信息对应的调用链路的情况了。相关文章:spring cloud脚手架项目(五)日志模块之出入参数和日志链路追踪UUID2 实现效果上一篇文章的实现效果[430c8ee7-6d34-4414-8ccc-9042c4cc340c][2020-10-23 22:14:24.948][http-nio-87原创 2020-10-23 23:09:03 · 233 阅读 · 0 评论 -
spring cloud脚手架项目(十二)简易责任链写法
说明前面有一篇文章提到过一个设计模式,是工厂模式和策略模式的使用。在项目中非常的普遍。这次我要介绍的是责任链模式,这个模式也非常的常见。逻辑介绍假设我们需要做到一个订单下单,一般来说订单下单需要做到一层一层的检测。如果其中有一层检测错误,那就直接抛出下单失败。并且丢出错误信息即可。如果是一般的写法。那就是一个长代码if else 。如果校验规则越来越多。那么就可以使用责任链模式,把校验规则分开写,也会更加优雅。话不多说。直接上代码代码实现核心类,用于策略启动import org.springf原创 2020-10-21 23:22:35 · 361 阅读 · 1 评论 -
spring cloud脚手架项目(十一)logback配置
前言之前有写到一个aop日志输出,当时没有做好相关的logback配置。前几个月在新公司给老系统升级的时候重写了一个好用的aop的logback的配置。对于spring boot 的logback配置的xml文件也有了很好的理解。这次接机说明一下。也为下一篇文章讲到链路之间的日志uuid的添加做准备代码以下就是详细的xml配置文件。每一行我都做了对应的注释和说明<?xml version="1.0" encoding="UTF-8"?><configuration scan="t原创 2020-10-20 23:54:18 · 423 阅读 · 0 评论 -
spring cloud脚手架项目(十)简单好用的上下文写法
前言好久没更新之前的脚手架项目的文章了。其实我最近也写了蛮多的代码。在git记录里面可以看到,但是把demo转为实际的例子又需要一些语言表达,最近公司被迫9116,还没有补偿。也没什么心思写这个。最近准备重新准备一下面试,相对工作也会划水一点,打算把之前代码漏下的更新一下。介绍什么是上下文写法呢?想必在大家写代码的时候总会遇到,有一个逻辑特别复杂的代码。又是一线到底的逻辑,也不需要用到什么设计模式。但是就是复杂,判断多。一梭子写下来。一个方法500行。就想老太太的裹脚布,又臭又长。而且这种代码。刚写完原创 2020-10-19 22:42:04 · 375 阅读 · 1 评论 -
spring cloud脚手架项目(九)各层模型Pojo转换工具类BeanCopyUtil
前言编程中比较常见的问题就是controller层的DTO转为对应的数据操作层的DO。或者是在一系列service操作之后返回到controller层的DTO转换。或者是还需要把DTO转VO。模型介绍1、用户发出请求,表单的数据层被匹配为 VO2、展示层把 VO 转换为服务层对应方法锁要求的 DTO,传输给服务层3、服务层首先根据 DTO 的数据构造一个 DO,调用 DO 的业务方法完成具体业务4、服务层把 DO 转换为持久层对应的 PO,调用持久层持久化方法,把 PO 传递给它完成持久化操作原创 2020-05-15 20:37:49 · 432 阅读 · 0 评论 -
教训,数据库不加密的后果,我的数据库被绑架了!
原因最近这段时间有点空暇,所以在搭建自己的spring cloud脚手架。然后还特意去腾讯云低价弄了2台云服务器做自己的中间件的平台,把我的msyql,eureka,rocketmq,nacos,等等一系列中简单docker打包上去了。做我的脚手架中间件支撑,在github上也有同步。昨天,遇上事情了。过程由于我的代码放到github上去了。我的yml文件上的数据库连接账号密码是明文形式的。(这也是自己的重大问题。其实在公司开发的时候这些东西都是加密的)我昨天正在美滋滋的测试我的脚手架服务。突然数据库原创 2020-05-14 21:00:53 · 543 阅读 · 1 评论 -
spring cloud脚手架项目(八)nacos动态配置中心接入以及json配置
前言上一篇我接入了rocketmq和redis,本次要接入的中间件是阿里的nacos,用于当做配置中心。关于nacos的安装可以参考我之前写过的docker 安装naocos的文件介绍nacos是阿里用于spring cloud体系下的一个突破吧,可以用作注册发现和配置中心,支持自动刷新配置,我个人更加喜欢他的自动刷新配置功能,比spring cloud 的config和bus的动态配置有更多用法。常见用法就是用于动态刷新配置。举例:有一个项目由一个新功能上线。我也不确定这个功能是否好用,我需要及时原创 2020-05-13 10:14:51 · 4410 阅读 · 2 评论 -
spring cloud脚手架项目(七)redis和rocketmq接入
前言上一篇讲到了工厂类和工厂类对应的使用。本篇则讲到了mq和redis的整合。在mysql负载不过来过多请求的时候,我们需要缓存,这时候就是redis登场的时候了。以及我们的请求需要削峰,降低请求压力。就需要mq,我们本地接入的是rocketmqrocketmq和redis的docker安装可以考察我之前的代码参考博客:redis:https://www.cnblogs.com/L-Wirepuller/p/11150742.htmlrocketmq:https://juejin.im/post/原创 2020-05-13 10:14:00 · 696 阅读 · 0 评论 -
spring cloud脚手架项目(六)策略模式&工厂模式的使用以及二进制状态优化
前言第5,6篇分别做了全局的异常处理和aop日志。这样我们的项目的通用逻辑的处理以及基本没有问题了。本篇讲的是一个工厂类的使用参考博客:https://segmentfault.com/a/1190000022205403https://blog.csdn.net/u013129944/article/details/64443054背景假设目前有一个需求,你需要在用户走完一串逻辑之后,对用户进行一个消息通知。方式可以是短信,微信,邮件,电话通知等等通知方式,那么应该怎么做?很多人的回答可能就原创 2020-05-13 10:13:24 · 384 阅读 · 0 评论 -
spring cloud脚手架项目(六)spring boot全局异常捕获处理
前言上一章我们说了全局的aop日志处理和追踪UUID日志打印。这一节讲的是全局的异常捕获。代码中再也不需要填入无数的try catch这种无效代码来进行异常捕获,去抛出,返回对应的Spring mvc结果。都可以通过这节的代码来解决参考博客:https://www.cnblogs.com/xuwujing/p/10933082.html代码BaseException 自定义异常public class BaseException extends RuntimeException { pri原创 2020-05-12 10:35:37 · 334 阅读 · 0 评论 -
spring cloud脚手架项目(五)日志模块之出入参数和日志链路追踪UUID
前言之前4篇已经构建完成了一个基本的spring boot项目。换在我之前工作的时候,就是一个标准的SSM的Web项目了,已经可以配合数据库做一个单机Web后端服务器使用了。接下来需要开发的就是日志模块了。参考博客:https://www.cnblogs.com/quanxiaoha/p/10789843.htmlhttps://blog.csdn.net/xubin320121/article/details/93857126代码自定义Aop注解ParamsLogimport java.l原创 2020-05-12 10:33:56 · 473 阅读 · 0 评论 -
spring cloud脚手架项目(四)mybaits+druid多数据+atomikos分布式事务
前言本篇是我的spring cloud脚手架项目的第四篇。上篇讲的是feign接口。我们的spring boot项目已经可以做一个最基本的接口返回和微服务提供了。本篇讲的是所有项目常用的数据库相关配置的接入参考博客:https://blog.csdn.net/u012702547/article/details/103029910https://blog.csdn.net/m0_37809146/article/details/86673372https://blog.csdn.net/ypp91原创 2020-05-11 20:38:55 · 418 阅读 · 0 评论 -
spring cloud脚手架项目(三)feign接口调用
前言在结束技术选择和模块化项目搭建之后。我们的spring boot项目就可以启动了。这时候就需要聊到微服务的一个重大作用,RPC调用文章参考:feign问题处理:http://www.imooc.com/article/289005如何调用feign:https://segmentfault.com/a/1190000012496398feignfeign接口调用是spring cloud下常用的RPC调用,自带Spring Cloud Ribbon 与 Spring Cloud Hystri原创 2020-05-11 15:47:45 · 469 阅读 · 0 评论 -
spring cloud脚手架项目(二)模块化项目搭建以及maven分环境打包部署
前言个人从17年毕业,算上实习等等经历,也是机缘巧合,对于从零开始搭建项目这件事情在每一家公司都经历过了。到今天为止,也算是有点心得。现在就讲一下我从零开始搭建一个微服务应用的理解。模块化搭建现在的应用项目,都是追求一个模块化的概念,恰巧idea这个写代码工具的项目管理也是模块化的,和现在的情况如出一辙,很利于项目的管理。我觉得也是lide流行的原因之一吧。还有一个不得不提的就是maven的,他对于项目的构建非常重要,我在大学写java项目的时候,还需要自己去网上把jar包下载下来,完全不知道mav原创 2020-05-10 11:41:27 · 586 阅读 · 0 评论 -
spring cloud脚手架项目(一)技术选型
前言目前因为有些原因。也是因为自己上一家项目使用了spring cloud的技术栈,所以希望能自己搭建一个spring cloud相关的项目脚手架,也是对之前干的事情的一个总结吧。写一个项目的第一步是需要进行技术选型和中间件选择,下面我会列出我这个项目中需要用到的技术和项目。基本框架-spring cloud boot微服务的大旗下面的目前的选择我所熟悉的只有dubbo和spring cloud的,如文章所言,所以我选择的是spring cloud版本,spring cloud和boot之前有一个对应原创 2020-05-09 11:43:16 · 1725 阅读 · 1 评论