- 博客(192)
- 资源 (9)
- 收藏
- 关注
原创 对于一个抽象类有多个实现类怎么获取
对接资方时,肯定会有多个实现类很正常我们提供三种解决方法:1.1抽象类:// 辅助类public interface BeanSupport { boolean support(String var1);}// 抽象业务类public interface LoanCallBack extends BeanSupport { /** * 回调通知 * * @param loanApplyRecord the loan apply record
2021-08-06 15:27:03 3073
原创 反射----拈花指
前言怎么进一步用反射,在BeanFactoryPostProcessor 做做文章![整体](https://img-blog.csdnimg.cn/20200605114716855.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzI3NjM5NzIx,size_16,color_FFFFFF,t_70)## 调用 pub
2020-06-05 11:50:19 174
原创 IT公司的旅程(二)
秒杀的流程笔者做过很多业务,oms oa cms crm 金融业务 电商业务 ,,,结果发现最有挑战性的其实也就是 电商的秒杀业务,任何处理技术,都是为了业务服务,没有最好,只有最适合而已,利用已有或者已知的技术,能够支撑现有的业务,那么就是合适的,就是合格的技术人员概述1.整个秒杀,无非就是先在 redis上做库存的减少,然后定时任务刷进真正的库存表中,前端会在下单的时候,一直轮询下单是否成功的接口,下单之后的操作全部是异步的,各种原子操作也全部就是异步的,原子操作完成后,会集体修改 Redi
2020-06-03 14:25:47 146
原创 IT公司的旅程(一)
前言--整体概述一个稍微正规的技术公司特征:-统一底层框架的构建发布流程-笔者有幸在一家电商公司做开发,所以看到了一个软件开发的全貌,-整体概述一个稍微正规的技术公司特征:1 统一的开发框架生成平台,自定义的脚手架2 SpringCloud全家桶中的部分组件 eurake feign hystrix stream ribbon3 统一的配置中心apollo4 统一的日志链表收集中心cat +kibanna+ES5.统一的dao层生成框架 mybatis-gen6.支持多数据源的灵活配置
2020-06-03 14:05:00 213
原创 Java8--小念头
实际生产中遇到的问题list -------转化为 Map<String,List<>>BiPredicate----巧用,用于过滤不满足的条件 public void checkAmount(String mainId,List<PromItemAReq> promItemListReq,String status){ // 规则设置的 限制数量 List<TProductGroupBuyingSelectRuleDO&g
2020-05-09 10:38:43 132
原创 Forkjoin+Future+ContDownLatch实战用法
对于批量任务,单个线程很明显不符合时代的要求,在java8的parallelStream还没有出现之前,可以选择用以下这种FutureTask public List<FangItemExport> getFangUrl(String token)throws Exception{ String listurl="https://www.baidu.com/api...
2020-01-10 16:37:20 339
原创 spring boot整合spring security
-笔者在实际生产中,遇到需求:给公司的5个系统统一加上token效验的需求,做成公共的jar包,而且要求使用spring security,暂时不做url权限的控制所有的请求进入到不同的系统,系统可以自由配置那些请求需要拦截,那些不需要拦截,并且请求中的token在失效前都必须在统一登录系统(LDAP)刷新token,登录系统的token时长是2小时,其他系统统一设置成1小时,**-...
2019-09-20 09:25:12 116
原创 面试案例(2019)一
笔者遇到的面试大多有笔试题,今天先贴一部分,进行背后的考察点分析尽管面试题,面试官80%不会看,但是空着总是不太好,所以能填就填点,也还有底气基础篇第一题:java编译第二题:基本类型的编译器校验第三题:–i 和i++ 和 do while的执行顺序第四题:基本类型的类型转化其实就是考察 thread.start() 和thread.run()的区别一个强制类型...
2019-07-13 23:45:26 128
原创 怎么进一步将方法的调用精确到配置化
由于总是遇到变化的需求,比如 10个页面,需要对某几个页面进行数据是否过期的判断,同时鉴于产品经理的无知,今天是1,3,5页面需要判断,明天是 2.5.6页面,而且每个页面数据是否过期的判断方法都不一样,所以我们需要进行配置+抽象具体的方法就是利用设计模式来进行一把展示一下最原始的顺序写下的笨方法左边 是最开始的原始的顺序判断的方法,很明显这是很笨拙的,一旦变更页面,就需要来改动代码,...
2019-04-21 21:45:12 174
原创 怎么将促销劵做到可扩展
打折打折这种事情在电商是十分常见的,怎么将这个东西做成可以扩展,并且容易维护呢先看结果:首先 劵有四个条件构成:促销范围,促销条件 条件参数 促销奖励促销范围有三种:老用户,新用户,老用户但是没有买过东西促销奖励:减免券 打折券…… for (TPromotionMsg item : optionList) { // 根据优惠券规则去匹配对应的...
2018-10-04 11:17:26 332 3
原创 怎么将无聊的ifelse彻底移除你的代码
前言在漫长的编码生涯中,我们最常见的就是写 if else if 这种东西对于初学者来说确实是很方便,但是维护起来肯定是一堆得麻烦,下面我们来看看怎么使用enum(1),enum+class.forname(2)来解决这个问题,枚举类的使用可以让代码十分的清晰,并且极大程度上可以完成解耦的工作,维护起来也非常简单,原代码需求: A系统的定义的附件类型和B系统的附件类型 不一致,...
2018-10-04 10:59:30 305
原创 进化版导出报表
分析一下excel的结构首先标题是固定,列名是固定的输出设备是变化的,数据是变化的public class ExportExcel2<T> { public void exportExcel(String[] headers, Collection<T> dataset,HttpServletRequest request, ...
2018-09-18 12:14:18 159
原创 几个简单算法java
目录笔者在实际生产中,遇到很多 需要操作list ,构成 固定的数据格式复杂一我需要 "list": [ { "sonlist": [ { "sontype": "3-3", "url": "11111" } ], &qu
2018-09-07 18:13:49 355
原创 java基础------CountDownLatch
目录笔者在实际生产中,遇到需要处理excel的多个sheet,很明显 需要 同时处理多个sheet,处理完后,才能返回给前端,join开多个线程 去 使用join ,很明显是可以的但是不优雅List<sheet> sheetlist=new ArrayList<>();Thread th1=new Thread(new Runnable(){ ru...
2018-08-30 10:36:20 134
原创 阿里的rocketmq使用
目录笔者在实际操作中,遇到需要使用mq的地方,无奈所有的 官方文档都是一个吊样,反正就是让你无法再一遍之内全部看懂,所以我就放弃了,直接上代码首先就是引入包 <dependency> <groupId>com.aliyun.openservices</groupId> <artifactId&...
2018-08-28 19:53:15 1804
原创 怎么在spring中动态注入抽象类的实现类
目录笔者在实际生产中有时会遇到需要自己生成 serviceImpl的 方法,和需要用到工厂类的情况,下面先讲讲怎么用反射做工厂类,抽象父类动作被抽象出来public interface PayStrategy { void pay(double total);}实现类public class EbankPay implements PayStrat...
2018-08-27 20:31:29 12008 1
原创 怎么将swagger2的部分接口 暴露给第三方
目录笔者在工作经常遇到要将写接口文档给 第三方,虽然 有javadoc 自动生成的工具,但是 大部分人希望能在 web浏览器上看到,这样更方便,所以选择 swagger2,同时又有人提出在生产环境不希望能看到这个 swagger的界面,所以还需要限制,总有人 觉得生产环境应该安全,安全,但是 我再思考 别人如果有心web渗透,你放防不住的。步骤<dependency>...
2018-07-26 13:35:45 7596 3
原创 怎么在spring中使用 feign,解决上传文件的痛点
目录笔者在长期使用第三方的http 的restful风格接口中,感觉到十分的麻烦,发现 在spring cloud 提供的组件中, feign 是十分好用的,而且十分清晰的可以看到自己 调用的其他的系统的接口 但是 很明显在 大量的百度之后,我发现根本没有一个可以运行的方案,要么就是一堆代码,要么就是 运行不了,索性自己写feign初始在openfeign开源项目中,有一个 提供例...
2018-07-26 13:19:21 4781 2
原创 怎么使用redis做次数的限制
目录笔者在实际开发中,总能遇到一些 对验证次数的限制,比如 验证身份证这种api ,由于是收费的,为了防止恶意的提交身份证,所以 限制住是很重要的,分布式的系统中要么用 zookeeper ,要么redis ,这种没必要使用数据库去实现,具体实现 @Override public Map<String, Object> validateThreeElement...
2018-07-20 16:44:58 3794
原创 怎么解决区间比较的问题(工厂模式)
目录笔者经常遇到 需要 比较区间的问题,比如: 20&lt; x &lt;= 40 , -无穷 到 正无穷, 20&lt;=x 遇到这种,如果 单纯写if else if else if else 估计人都写傻了 所以我们用 抽象的思维 搞一下这个 问题, 多年使用 设计模式我的感悟就是: 使用设计模式,不仅仅显得逼格高,最重要的是 你...
2018-07-16 11:26:16 373
原创 怎么使用责任链模式
目录使用背景: 笔者遇到促销活动中,需要使用优惠券的功能,由于优惠券的使用条件是随着季节的变化而变化的,所以在进行编码时,为了遵循 可扩展,抽象变化的 原则,进行了责任链的模式的实践,使用条件1.授信金额 在 2000~ 4000 , 2.订单金额在 3000~3500, 3.分期期数在 2~6 ……… 明显这些 条件不可能穷举,而且还会随着时间而增加,抽象出公...
2018-07-16 10:58:37 569 1
原创 shell脚本学习
###目录1. 基本的 变量的定义: port=‘8088’ p1='/root/file/'${port} 会获取 port的值 pid =` ps aux | grep $port ` 这个符号 会把 环境变量和命令都执行一遍,然后再给 pid 赋值2. 基本的命令: grep -v grep 将 文本中的 含有 grep 的过滤, ...
2018-05-24 17:59:35 181
原创 怎么使用zookeeper限制同一个请求
目录生产中,我们经常会把接口api 提供给第三方的使用者,但是 如果当调用者出现故障疯狂的调用我们的接口,或者 同一个请求发了多次,第一种 情况 会造成 服务器大量的链接被占用,造成服务挂掉,正常的服务无法提供给其他人, 第二种情况会造成 业务上很大的困扰,比如 减库存或者转账多加多减得情况,解决调用频率太高的问题我使用的是 redis 作为解决调用频率的问题 首先 我们将 需要 进行 访问频率
2018-04-29 13:22:33 528
原创 关于自定义注解给方法记录日志
目录在实际生产中,总能遇到需要记录某一些方法的访问情况的,所以我们采用自定义注解来解决自定义注解 */@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Actuator { String type() default
2018-03-29 11:20:47 578
原创 jenkins实现自动发布
目录使用jenkins实现自动构建发布,已经是很常见的技术,首先在服务器上安装 jenkin,然后启动,自己修改jenkins的端口,记录下登陆者名字和密码, 在网页上打开这个 已经启动的 jenkins服务, 配置 git地址 和项目名称, 自己填maven 构建方式和 全局的jar包 地址shell脚本配置 这是 服务器上的shell脚本,
2018-03-29 10:16:25 414
原创 SpringBoot的小技巧
从配置文件读到其他配置文件 直接就是 ${key}从配置文件读到bean根据环境加载配置文件根据配置文件中的key的注入list
2018-03-27 18:17:03 449
报表的制作工具类报表的制作工具类报表的制作工具类报表的制作工具类
2017-12-01
使用cache研究工厂模式
2017-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人