在项目迭代开发中经常会遇到对已有功能的改造需求,尽管我们可能已经预留了扩展点,并且尝试通过接口或扩展类完成此类任务.可是,仍然有很多难以预料的场景无法通过上述方式解决.修改原有代码当然能够做到,但是这会增加许多附加成本,回归测试带来大量工作和一些潜在的未知风险.特别是一些极其重要的公共模块,可谓牵一发而动全身,稍有不慎都将引发重大的故障.这里分享一下自己在项目开发中的一点实践,一种基于AOP的插件化(扩展)方案. 假设一个场景: 现有一个可获取人员信息的服务:UserService. publi…