cron获取上一个执行时间


public static LocalDateTime getLastExecutionTime(LocalDateTime time, String cron) { CronParser parser = new CronParser(CronDefinitionBuilder.

Spring中RestTeamplate请求网页重定向请求


默认DefaultRedirectStrategy只会重定向 GET与HEAD请求, POST等请求不会自动重定向 LaxRedirectStrategy会进行重定向,但是无法解析获取请求链路 // 扩展LaxRedirectStrategy,记录最终访问的Uri与重定向链路 @Slf4j publ

shell利用文件实现独占锁,多进程串行执行


这样一个需求 调度器中同一个任务需要多次执行,但是每次执行前要确认环境是否就绪,不就绪需要进行初始化 这个初始化操作会需要较长的执行时间,且并发执行的情况下多个任务同时初始化会导致最终初始化的环境失败 解决思路 使用文件作为lock,同时lock记录当前的进程号 同时只有一个shell进程能进行lo

AopContext.currentProxy()


原来在springAOP的用法中,只有代理的类才会被切入,我们在controller层调用service的方法的时候,是可以被切入的,但是如果我们在service层 A方法中,调用B方法,切点切的是B方法,那么这时候是不会切入的,解决办法就是如上所示,在A方法中使用((Service)AopCont

spring EL表达式使用


//创建ExpressionParser解析表达式 ExpressionParser parser = new SpelExpressionParser(); //表达式放置 Expression exp = parser.parseExpression(“{#id}+’info’+ #getUse

JAVA常见问题集合


1. ArrayList 保存的100万个对象,如何获取属性type=2 的子集 100W个对象使用ArrayList保存的合理性, 内存,并发 获取子集的性能要求 多线程(cpu核心 * 2, 内存大小,swap大小 )查找, list分片搜索 -> 合并结果集 java8 parallelStr

Spring基础知识(一)


1. BeanpostProcessor,BeanFactoryPostProcessor区别 spring初始化bean流程 定义bean标签 > 将bean标签解析成BeanDefinition > 调用构造方法实例化(IOC) > 属性值依赖注入(DI) > init-method Beanp

基于Redis实现分布式锁解决OLAP中SQL重复执行​


基于Redis实现分布式锁解决OLAP中SQL重复执行 在大数据的报表系统中,OLAP引擎处于一个报表初步制作、短期使用的阶段,此阶段报表处于需要固化,但还不能固化的状态,此时大量的查询会进入OLAP引擎,引擎层会承受巨大的压力 只是简单的将查询结果使用缓存保存,可能依旧存在风险 当用户的查询需要较

Gson实现LocalDateTime序列化


private Gson gson = new GsonBuilder() .registerTypeAdapter(LocalDateTime.class, new JsonSerializer<LocalDateTime>() { @O

ObjectMapper(Jackson)解析Json对象


ObjectMapper mapper = new ObjectMapper(); // 忽略大小写 mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); // 下划线 与 驼峰转化 mapper.