随笔分类 -  Spring

摘要:工作中,经常遇到需要重试的场景,最简单的方式可以用try...catch...加while循环来实现。那么,有没有统一的、优雅一点儿的处理方式呢?有的,Spring Retry就可以帮我们搞定重试问题。 关于重试,我们可以关注以下以下几个方面: 什么情况下去触发重试机制 重试多少次,重试的时间间隔 阅读全文
posted @ 2023-12-01 18:30 废物大师兄 阅读(1349) 评论(0) 推荐(3)
摘要:Spring提供的事务使用起来很方便,一个@Transactional注解就搞定全部,但是如果不注意,也会踩坑 提到事务就应该想到至少以下几点: 1、在事务方法中加锁,可能会导致锁失效 无论是Java自带的锁,还是分布式锁,都有可能出现没锁住的情况 原因是解锁先于事务提交,一旦锁释放后其它线程就可以 阅读全文
posted @ 2023-03-03 16:50 废物大师兄 阅读(585) 评论(0) 推荐(0)
摘要:重试的使用场景比较多,比如调用远程服务时,由于网络或者服务端响应慢导致调用超时,此时可以多重试几次。用定时任务也可以实现重试的效果,但比较麻烦,用Spring Retry的话一个注解搞定所有。话不多说,先看演示。 首先引入依赖 <dependency> <groupId>org.springfram 阅读全文
posted @ 2022-10-28 14:28 废物大师兄 阅读(2240) 评论(0) 推荐(0)
摘要:RestTemplate是用于执行 HTTP 请求的同步客户端,通过底层 HTTP 客户端库(例如 JDK HttpURLConnection、Apache HttpComponents 等)公开一个简单的模板方法 API。 RestTemplate 通过 HTTP 方法为常见场景提供模板 注意:从 阅读全文
posted @ 2022-04-14 17:17 废物大师兄 阅读(1920) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-11-28 18:41 废物大师兄 阅读(663) 评论(0) 推荐(0)
摘要:目的: 统一日志输出格式 思路: 1、针对不同的调用场景定义不同的注解,目前想的是接口层和服务层。 2、我设想的接口层和服务层的区别在于: (1)接口层可以打印客户端IP,而服务层不需要 (2)接口层的异常需要统一处理并返回,而服务层的异常只需要向上抛出即可 3、就像Spring中的@Control 阅读全文
posted @ 2018-05-30 17:02 废物大师兄 阅读(21171) 评论(3) 推荐(8)
摘要:Aspect Oriented Programming with Spring 1. 简介 AOP是与OOP不同的一种程序结构。在OOP编程中,模块的单位是class(类);然而,在AOP编程中模块的单位是aspect(切面)。也就是说,OOP关注的是类,而AOP关注的是切面。 Spring AOP 阅读全文
posted @ 2018-05-29 17:17 废物大师兄 阅读(2423) 评论(3) 推荐(4)
摘要:Application Events and Listeners 1、自定义事件和监听 1.1、定义事件 1.2、定义监听 1.3、注册监听 1.4、发布事件 2、基于注解的事件监听 3、异步监听 4、应用 5、统计异步任务执行的进度 利用Future获取执行结果,比如上面的例子中,由于不是直接提交 阅读全文
posted @ 2018-05-10 19:50 废物大师兄 阅读(15558) 评论(1) 推荐(7)
摘要:1、任务执行和调度 Spring用TaskExecutor和TaskScheduler接口提供了异步执行和调度任务的抽象。 Spring的TaskExecutor和java.util.concurrent.Executor接口时一样的,这个接口只有一个方法execute(Runnable task) 阅读全文
posted @ 2018-05-09 21:08 废物大师兄 阅读(2502) 评论(0) 推荐(0)
摘要:Spring AOP和AspectJ是AOP的两种不同实现。前者是动态代理,后者是静态代理。 AOP的作用就是分离关注点,它将与业务无关的逻辑抽离出来单独封装成模块,实现核心业务与通用的逻辑的解耦。 首先,有几个概念需要了解一下: aspect(方面):简单的理解,将公共的逻辑剥离出来并封装成模块, 阅读全文
posted @ 2018-03-11 17:52 废物大师兄 阅读(1515) 评论(0) 推荐(2)
摘要:1、介绍 AOP(面向切面编程)对OOP(面向对象编程)是一种补充,它提供了另一种程序结构的思路。OOP的模块单元是class,而AOP的模块单元是aspect。Spring中一个关键的组件是AOP框架,然而,Spring IoC容器并不依赖于AOP,也就是说如果你不想用AOP的话可以不用。 在Sp 阅读全文
posted @ 2018-03-11 12:02 废物大师兄 阅读(1845) 评论(0) 推荐(0)
摘要:无论是基于注解的ApplicationContext(org.springframework.context.annotation.AnnotationConfigApplicationContext) 还是基于XML的ApplicationContext(org.springframework.c 阅读全文
posted @ 2018-02-03 22:48 废物大师兄 阅读(901) 评论(0) 推荐(1)