编程
xdx54321
.................
展开
-
实现自己SpringMVC的RequestMapping
开发后端接口服务时可能会用到SpringMVC, 然而SpringMVC会用到Servlet, 而Servlet又依赖tomcat等容器。 为了高并发要求,我们可以实现部分SpringMVC的功能,而且又不会依赖容器启动。 首先,要写个RequestMapping那样的注解类@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME原创 2017-04-16 12:42:32 · 659 阅读 · 0 评论 -
使用消息队列要注意异步问题
案情重演: 先从一张时序图开始 首先有两个系统A、B,他们之前用ActiveMQ作为交互。为了记录上面的执行情况,在数据库中有一个字段来标识执行到哪一步的状态,状态说明如下: 1: 插入数据库时的初始状态,即第1步完成后的状态 2: 推送ActiveMQ成功后的状态,也就是第2步完成后的状态 3: 处理结果成功的状态,也就是第6步完成后的状态【最终状态,下面会提到。】正常来说从步骤1到原创 2017-04-16 12:53:36 · 551 阅读 · 0 评论 -
一种比if-else和switch更符合开闭原则的方法
大家想必写过类似这样的代码: if () {} else if() {} else if(){} …… 当条件多时代码显得非常冗长,而且每次添加条件时需要修改主流程的代码。这样就破坏了类的开闭原则。基于此,我们可以采用另一种比较优雅的实现方式, 首先,定义一个接口, 这个接口很重要,是用来替代if-else的关键。 interface ISerivice原创 2017-04-16 12:40:44 · 1092 阅读 · 0 评论 -
ThreadPoolExecutor中活跃的线程数超过corePoolSize后新来的请求会进入阻塞队列
关于该类的文档 https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html描述中有以下内容Core and maximum pool sizes............. When a new task is submitted in method execute(jav...原创 2018-10-23 00:15:58 · 11353 阅读 · 1 评论