6 红豆和绿豆

尚未进行身份认证

暂无相关描述

等级
TA的排名 1k+

java8针对LocalDateTime和LocalDate和LocalTime和Date之间的转换

packagedate;importjava.time.*;importjava.time.format.DateTimeFormatter;importjava.util.Date;publicclassDateTest{publicstaticvoidmain(String[]args){LocalDatelocalDate=L...

2019-09-15 21:01:23

阿里巴巴开源框架JarsLink,可以使用热部署的方式发布jar,实现业务隔离

JarsLink(原名Titan)是一个基于JAVA的模块化开发框架,它提供在运行时动态加载模块(一个JAR包)、卸载模块和模块间调用的API。也是阿里巴巴的开源项目之一https://github.com/alibaba/ja...,目前在微贷事业群广泛使用。使用场景(1)统一下单,可以使用这个jar针对不同的业务进行隔离以及热发布(2)B端的系统以及跨网管的调用可以做一个...

2019-09-15 16:56:47

新系统创建如何搭建一个简单的框架

背景:最近在搭建新的系统,因此在搭建系统的时候,我主要做了以下几个方面的事情步骤:(1)首先实现一个模版回调做为一个业务入口,实现统一参数校验、业务执行、统一异常处理、统一监控埋点日志打印处理(2)业务执行步骤:可以使用自己编写简单的工作工作流引擎和并发调用框架,做为基础公共模块供业务层使用。(3)针对DB的操作,使用统一的mybatis自动代码生成框架生成代码,如果db是Hbas...

2019-09-15 16:30:30

使用slf和logback进行日志打印

简介java里面日志分为两部分一个门面、一个实现,我们所熟知的SLF4j、Log4j、Log4j2、Logback的日志组件slf4j是门面提供的统一的入口,具体实现由log4j、log4j2、logback来实现log4j由于太老作者自己也不打算重构了所以放弃log4j2是apach的一个项目很好,但支持上面略有欠缺所以放弃logback是之前log4j的作者自己开源的一个新的l...

2019-09-15 16:16:56

使用javax的validation和hibernate-validator框架对pojo类的属性进行校验以及扩展

背景:如果页面表单有很多字段需要提交,因此使用注解校验的方式针对pojo的属性进行校验因此使用javax标准以及org.hibernate的validator的注解校验具体的javax的validation的注解以及hibernate的注解都是可以使用的,具体的扩展可以在网上找找,目前在这里就不再进行扩展了。一开始项目使用spring-module0.9的jar,发现这个鬼东西不支持spr...

2019-09-15 16:09:34

封装一个并发调用的类,业务层只需要调用一个简单的类就可以并发调用,实现业务隔离

背景:目前比如大型电商淘宝,京东的商品详情页和店铺详情页都有大量的信息,目前如果一个主接口串行的调用,则会出现性能不足的情况,因此可以考虑使用多线程的调用,看看具体的业务是否是cpu密集型还是io密集型,一般都是io密集型,因此使用多线成问题不大。做好一个业务一个线程池,分开维护,如果多个业务使用同一个线程池,容易导致线程之间的冲突。具体的实现如下:packageconcurren...

2019-09-15 14:49:36

系统迁移涉及到的方案

背景:目前在做公司系统迁移的任务,需要将一个系统的能力拆分到一个新的系统,涉及到DB的的一些数据步骤:(1)首先涉及架构方案,比如针对数据的处理,存量数据和增量的数据。存量数据同步的方式:存量的数据可以通过离线表清洗出id,然后通过接口调用的方式进行数据迁移。增量数据同步的方式:1、使用消息的方式:增量数据就需要数据进行双写,比如商家修改一条数据,则先在原有系统A操作,然...

2019-09-15 11:57:34

实现拦截器,使用代理设计模式

publicinterfaceInvocation{voidinvoke();}publicclassApiInvocationimplementsInvocation{privateIterator<Intercaptor>iterator;/***@param...

2019-08-31 23:32:49

如何针对一个页面有多个模块进行可扩展的设计

使用抽象工厂设计,兼容不同客户端有不同的模块针对不同的模块进行抽象针对多个服务的调用,可以并发的调用缩短整个页面的响应时间packagehomepage;importorg.springframework.util.CollectionUtils;importjava.util.HashMap;importjava.util.List;importjava.ut...

2019-06-23 15:36:00

找到一个类所有的子类

WelcomeLatestversionofReboundisversion0.2ReboundisaJavalibraryforlookingupsubclassesofagivenclassorinterfaceusingJavareflection.Reboundallowsyourtolookupyourclasses...

2019-06-03 20:04:13

java动态编译

我曾经见过一个“规则引擎”,是在应用系统web界面直接编写java代码,然后保存后,规则即生效,我一直很是奇怪,这是如何实现的呢?实际这就好像jsp,被中间件动态的编译成java文件,有被动态的编译成class,同时又动态的加载到classloader中。所以,本质上,纯java得规则引擎,是100%可以实现的。1、动态生成java源代码。这个过程太过简单,直接略过。2、动态编译。...

2019-05-04 23:05:23

实现一个简单的内存分页功能

packagepage;importjava.io.Serializable;importjava.util.List;publicclassResponseimplementsSerializable{privateListlist;privatebooleanhasMore;privateintnextPageNo;...

2019-05-04 20:10:46

购物车

功能:购物车一般有的功能,查询购物车,新增购物车,删除购物车,清空购物车,修改购物车(先删除在增加)设计:购物车id,商品id,skuId,数量,用户id,用户名字,商户id,购物车类型,购物车记录状态,扩展属性,版本功能实现查询购物车:根据用户id查询用户加购的所有商品加:先查询购物车该商品时候已经存在,如果存在,则数量+1否则新增一条记录。如果用户连续点击+的时候...

2019-05-04 12:55:14

购物车下单方案

背景:目前很多电商系统中都有自己的购物车,购物车下单的方案方案:(1)可以使用预下单的方案,就是在提交订单之前,先调用下单接口,把扩展信息数据放到tair中,然后返回一个uuid的值,下单的时候,把这个uuid透传过来,这样就可以解决浏览器无法透传大量参数的问题。下单根据uuid的信息获取购物车信息。(2)下单的时候只透传基本的商品id,然后在下单的时候反查购物车,获取商品的扩展信息...

2019-05-03 21:05:30

消息的使用

背景:很多大型互联网公司,数据都是最终一致性,因为访问量巨大,需要大量的机器来承载用户的访问,有的系统不能承载着么大的流量,因此可以考虑使用异步消息的方式,实现数据最终的一致性消息:目前消息有很多中间件,notify,metaq一种是基于推送,一种是基于拉取,如果使用notify,基于推送的方法,业务方需要足够的机器接收消息,防止机器被打挂,meatq根据自己业务能力设置拉取的速度。...

2019-05-03 17:43:09

针对同时调用多个系统,如何保证数据的一致性

背景:目前很多公司都是面向分布式系统开发,因此需要考虑数据的一致性,比如发布一个商品,可以落商品基本的信息在一个表,商品的规则在一个表,商品的模版信息在一个表,商品的sku信息在一个表,如何保证表单提交的时候,保证数据的一直性思路(1)看商品的设计,如果商品提供原子操作,那么业务方就无法使用数据库的保证多个表的操作在一个事物中执行,需要外围自己想办法保证事务的一致性,可以选择分...

2019-05-03 17:31:10

Spring 的getBeanNamesForType和getBean联合使用

(1)Spring的getBeanNamesForType(interface.class)1、获取applicationContext,通过ApplicationAware自动注入2、getBeansOfType、getBeanNamesForType  Map<String,Interface>result=applicationContext().getBe...

2019-04-25 20:00:40

GroovyClassLoader类进行java调用groovy脚本

1目的动态执行任务或者扩展功能,需要java动态执行groovy代码2项目依赖<dependencies><dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy-all</artifactId>...

2019-04-07 20:58:42

Supplier的使用

背景:如何将一个域关联的属性搞到一个类中,可以使用Supplier这个类publicclassSupplierTest{publicenumPersonEnum{NAME("name",PersonEnum::getName),AGE("age",PersonEnum::getAge);...

2019-04-06 00:49:12

BiFunction的使用

背景:如果一个商家有A,B二个门店,想把A的属性复制给B主要使用BiFunction的使用实现:publicinterfaceCopyRule{/***对in执行拷贝结果到out中.**@paramin*@paramout*@return*/booleancopy(Cop...

2019-02-19 22:09:51

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。