
java
Forest441
既然决定了就不轻易放弃
展开
-
Spring的BeanUtils的copyProperties方法需要注意的点
背景最近项目中在和第三方进行联调一个接口,我们这边发送http请求给对方,然后接收对方的回应,代码都是老代码。根据注释,对方的SDK中写好的Request类有一个无法序列化的bug,所以这边重新写了一个Request类,基本属性都是相同的,但是重点是有一个属性是静态内部类,还有两个是list属性,类似于下面这样:private List<Order> orders;private...原创 2020-02-22 13:01:04 · 1582 阅读 · 0 评论 -
关于spring自动加载的那点事儿
背景惯例要讲一下背景,毕竟问题来源于生活,困难滋生于工作,要是每天吃吃喝喝、无忧无虑,我相信我也没什么问题好写了^_^公司架构组在推新的基础框架,主要是嫌以前的框架用起来太啰嗦了,做了很多感觉多余的工作(思想也是在进步滴)。正好我这边也在做中台服务的下沉和重构,用到了索性就直接接新的框架了,老是用陈年的东西不肯升级,都快觉得自己已经七老八十了,咱要有互联网人的与时俱进的思维,出了问题大不了删库跑...原创 2020-02-22 13:00:18 · 1042 阅读 · 0 评论 -
ReentrantLock源码分析
ReentrantLock源码分析前言最近公司比较忙,整天忙着做项目、做需求,感觉整个人昏昏沉沉的,抬头看天空感觉都是灰色的~~,其实是杭州的天本来就是这个颜色,手动滑稽`~(^o^)/~`。废话不多说,今天突然回忆起面试的时候问到的锁,继而就想起了ReentrantLock这个类,我们知道,JDK1.6已经对synchronized做了很多的优化,性能上已经不比ReentrantLock差...原创 2020-02-22 12:58:53 · 937 阅读 · 0 评论 -
Apollo配置中心遇到的坑
前言项目用的springboot,连带着配置中心也一直用的spring的配置中心,但是一直以来都有各种问题:每次变更配置要重启配置中心和应用;各个环境集群的配置文件在不同分支,每个环境要分别手动同步,容易遗漏;无法确定当前应用是否重启过,读取的是最新配置。当然,个人觉得最重要的就是需要重启应用这个,简直就是浪费时间,浪费时间就是浪费生命啊。虽然spring也提供@RefreshS...原创 2020-02-22 12:58:07 · 5760 阅读 · 0 评论 -
Spring事务处理机制以及错误使用TransactionSynchronization的afterCompletion方法引起的问题
前言我们都知道spring有声明式事务和编程式事务,声明式只需要提供@Transactional的注解,然后事务的开启和提交/回滚、资源的清理就都由spring来管控,我们只需要关注业务代码即可;而编程式事务则需要使用spring提供的模板,如TransactionTemplate,或者直接使用底层的PlatformTransactionManager。声明式事务的最大优点就是对代码的侵入性...原创 2020-02-22 12:57:35 · 6411 阅读 · 1 评论 -
dubbo的provider端抛出异常的处理逻辑
直入主题,我们都知道dubbo是一个rpc的框架,consumer是通过网络对provider发起方法调用的,provider也要通过网络返回响应。那如果provider端发生了异常而又没有捕获,照理就不会有返回值,consumer端会得到什么样的结果呢?其实dubbo有一个专门处理异常的Filter,叫ExceptionFilter,针对provider端未被捕获的各种异常做了分别处理,看一下...原创 2020-02-22 12:53:28 · 2546 阅读 · 0 评论 -
当dubbo序列化遇上Collections
背景惯例先交待一下事件的背景,最近在调试接口的时候发现一个奇怪的现象,页面某一处显示的数据在我未对其做更改的情况下发生了变化。通过查看代码发现,页面会发送请求,然后将请求值做一层包装,之后传给其他模块做存储。过程一开始怀疑是其他模块动了数据,而且操作错了,经过调试代码发现不是那么回事儿~~,数据在传送之前就已经有问题了。更诡异的是,看上去根本没做啥啊,这代码的简单程度简直和HelloWord...原创 2020-02-21 21:54:52 · 621 阅读 · 0 评论 -
spring中定义多个HandlerExceptionResolver,异常会怎么处理
前言我们知道,spring提供了几种方式来统一异常,这样我们就不需要在controller的每个方法中都写烦人的try-catch了。主要有以下几种:@ExceptionHandler 注解HandlerExceptionResolver 接口@ControllerAdvice 注解这里就不一一展开说明了,今天主要讲一下,如果项目中定义了两个HandlerExceptionRes...原创 2020-02-21 21:54:22 · 1998 阅读 · 0 评论 -
dubbo框架设计介绍
简介Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。相信国内用dubbo的互联网公司还是很多的,springcloud虽然是挂靠在鼎鼎大名的spring团队下,但是感觉国内使用的公司没有使用dubbo的多,而且...原创 2020-02-21 21:53:46 · 1029 阅读 · 0 评论 -
Netty中NioEventLoop源码分析
版本本次源码分析基于Netty的版本为4.1源码分析NioEventLoop可以视为java中的一个线程,只不过NioEventLoop处理的事件,以及内部的处理逻辑会有所不同。先看一下类的继承关系:可以看到NioEventLoop实现了很多接口,特别是EventLoop和ScheduledExecutorService,所以NioEventLoop不仅能实现普通的task,还能实现定时t...原创 2020-02-21 17:13:05 · 963 阅读 · 0 评论 -
《Netty实战》总结
前言我们都知道Netty是一款用于创建高性能网络应用程序的高级框架,但是实际工作中真正地去直接使用Netty的场景好像不多(反正我没有)。其实Netty无处不在,很多中间件底层通信框架用的都是Netty,dubbo、rocketMQ、Elasticsearch等常用的框架和中间件其实都用到了Netty。最近在读《Netty实战》这本书,做一个知识点的简要概括吧,省略了一些章节(比如Netty用于...原创 2020-02-21 16:46:41 · 984 阅读 · 0 评论 -
关于springboot启动配置加载的那点事儿
前言现在几乎所有的java开发都会用到springboot,除了很老很老的项目,应该不会再有人直接用jsp,servlet等写web项目了吧,直接用spring的都很少见了。今天发生的这个问题就得从springboot说起。我们都知道springboot遵循约定大于配置的规则,尽量将spring中的配置减少,几行代码就可以跑一个web项目,但是默认的东西越多,其实隐藏的东西也就越多,一旦碰到什么...原创 2020-02-21 16:17:54 · 1162 阅读 · 0 评论 -
Lombok的@Builder注解
背景惯例说一下背景,对于那些复杂的接口或者大的查询接口,一般我们会在入参定义一个option,然后将查询域分割成几部分,由调用方指定需要查询的域。今天在调用其他团队某个接口的时候发现对方定义的Option里面分成了十几个选项,但是没有提供链式调用,这样每次set值就要好几行代码,使用起来很不方便,代码也不美观。所以在己方代码里做了一层封装,定义了一个相同的Option类,标注了Lombok的@B...原创 2020-02-21 16:14:30 · 1253 阅读 · 0 评论 -
PAT A 1002. A+B for Polynomials
浙大PAT甲级1002原创 2015-08-09 20:39:27 · 570 阅读 · 0 评论