Hello,各位小伙伴们,早上好~ 上周文章年轻人不讲武德,竟然重构出这么优雅后台 API 接口我们使用 @ControllerAdvice与 ResponseBodyAdvice 重构后端的 API 接口,降低了复杂度,减少了重复代码,后续接口开发非常简洁优雅。 知其然而知其所以然,今天这篇文章来聊聊这个注解背后的原理,让我们彻底掌握这个注解,避免后续踩坑。 另外,有个小伙伴看完上篇文章,觉得这个注解的跟 Spring Interceptor 功能很类似,再加上之前还学习了 Servlet 体系 Filter 功能,不知道这几个有什么区别,感觉很混乱。 所以今天这篇文章下面两个部分出发,详细解释一下。 @ControllerAdvice与 ResponseBodyAdvice 注解原理 Filter,Interceptor,ResponseBodyAdvice 区别 从源码解析背后的原理 上篇文章中我们看到 ResponseBodyAdvice的子类使用 @ControllerAdvice注解,大家有没有好奇,如果我将@ControllerAdvice换成 @Controller.... 写了一套优雅接口之后,领导让我给大家讲讲这背后的技术原理 Spring
Hello,大家好,我是鸭血粉丝~ 最近看同事的代码时候,学到了个小技巧,在某些场景下非常挺有用的,这里分享一下给大家。 Spring 中 @Autowired注解,大家应该不会陌生,用过 Spring 的肯定也离不开这个注解,通过这个注解可以帮我们自动注入我们想要的 Bean。 除了这个基本功能之外,@Autowired 还有更加强大的功能,还可以注入指定类型的数组,List/Set 集合,甚至还可以是 Map 对象。 比如说当前应用有一个支付接口 PayService,分别需要对接支付宝、微信支付、银行卡,所以分别有三个不同实现类 AliPayService,WechatPayservice,BankCardPayService。 四个类的关系如下图所示: 如果此时我需要获取当前系统类所有 PayService Bean,老的方式我们只能通过 BeanFactory或者 ApplicationContext 获取。 // 首先通过 getBeanNamesForType 获取 PayService 类型所有的 Bean String[] names = ctx.getBeanN.... 巧用 Spring 自动注入快速实现策略模式 Spring
一次生产问题,定时任务莫名全部停止,刚开始误以为是 Spring 定时任务的 Bug,最后发现竟是 Spring 默认配置引起的问题。 有更新! 定时任务莫名停止,Spring 定时任务存在 Bug?? Spring