
spring
文章平均质量分 64
荒野大码农
仰之弥高,钻之弥坚
展开
-
spring-data-redis实现向redis发布阅订的功能
redis的发布/阅订模式不了解的小伙伴可以看我的另一篇博客:redis发布/订阅模式这里就直接开始说明Java代码如何实现redis发布阅订的功能啦引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>阅原创 2021-06-03 08:21:31 · 620 阅读 · 1 评论 -
quartz整合springboot将定时任务持久化
持久化配置在springboot项目中引入quartz依赖之后,默认是将任务和触发器保存在内存中,如果希望将任务和触发器保存在数据库中,只需在 application.yml 添加以下配置:spring: quartz: job-store-type: jdbc jdbc: initialize-schema: always #每次启动程序都会将旧的quartz表删除,重新创建,所以我们在第一次启动程序之后,要将这个属性改为"never"另外,你的springbo原创 2020-12-30 14:14:29 · 533 阅读 · 0 评论 -
spring监听redis的key失效事件
有时候我们在项目中会需要监听redis的key失效事件,springboot-boot-starter-data-redis 这个包为我们提供了监听redis的key失效的功能。/** * Redis 的 Key 失效监听器 */public class RedisJobEventMessageListener extends KeyExpirationEventMessageListener { public RedisJobEventMessageListener(RedisMessa原创 2020-12-11 11:37:28 · 592 阅读 · 0 评论 -
RedisTemplate使用scan代替keys方法
我们知道Redis是单线程的,keys命令会使线程阻塞,并且keys是以遍历的方式实现的,时间复杂度是 O(n),Redis库中的key越多,查找时阻塞的时间越长,如果这时候有大量的业务请求送达Redis,有可能导致Redis崩溃,所以线上环境都要禁用keys命令的。而scan命令是通过增量迭代的方式实现的,每次执行都只返回一个下标位置和少量key,我们通过多次调用scan [下标位置]命令,...原创 2019-12-05 16:48:07 · 6750 阅读 · 3 评论 -
Spring事务的7种传播行为的区别
当事务方法被另一个事务方法调用时,被调用的方法就会将事务传播给调用方。而传播行为就是指这个被调方法所定义的事务如何传播过去。Spring定义了7种事务的传播行为:Propagation.REQUIRED(默认) 表示所修饰的方法必须运行在事务中。当调用方抛出异常的时候,被调的方法也会回滚。Propagation.REQUIRES_NEW 表示所修饰的方法只会运行在它自己的事务中,与调用方的...原创 2019-08-01 23:29:51 · 466 阅读 · 0 评论 -
使用@Async注解的时候一定要在类上加@EnableAsync
今天想让一个方法变为异步调用,在方法上面加了@Async,结果测试的时候就是没有生效。最后发现原来是类上没有加@EnableAsync注解。原创 2019-07-30 09:29:15 · 7021 阅读 · 2 评论 -
SpringAOP用法
假设你们公司的系统里面有一个匿名意见版块,所有人可以在上面匿名发表自己的意见,且意见可以被所有人看到。有一天,你的老板突然找到你,说要在匿名意见版块里面增加一个功能:将提意见者的真名和他的意见打印在后台日志里。你一边感慨老板的阴险,一边默默照做。起初你想到直接在业务层里面打印这段日志,但感觉这样代码有所耦合,然后你又想到增加一个拦截器来打印日志,但是拦截器一般是做拦截校验的,与这个功能似乎不太匹...原创 2019-06-27 17:25:22 · 379 阅读 · 0 评论 -
springboot整合activiti6.0.0遇到的坑
在springboot项目中引入依赖:&amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;amp;gt;org.activiti&amp;amp;amp;amp;amp;lt;/groupId&amp;amp;amp;amp原创 2019-03-13 10:22:18 · 6273 阅读 · 4 评论 -
使用HttpServletRequestWrapper来修改post请求中的json数据
文章目录过滤的效果:具体的实现代码:公司里最近在做一个新的项目,项目中所有的请求都是这样的一个格式。因为version版本号在业务里并没有用到,只是一个验证依据,所以就想把它过滤掉。过滤的效果:过滤前{&quot;version&quot; : &quot;11111111&quot;,&quot;data&quot;: { &quot;heartbeat_原创 2018-12-01 16:33:22 · 8042 阅读 · 4 评论 -
使用CommonsMultipartFile类时需要导入依赖包commons-fileupload
今晚在做项目时,项目中用到了CommonsMultipartFile的对象,这是一个Spring自带的文件流。当我写好代码后,启动项目却报错了。第一行异常代码是bean创建异常:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shopServiceImpl' de...原创 2018-11-13 23:10:27 · 14206 阅读 · 0 评论 -
理解Spring定时任务@Scheduled的两个属性fixedRate和fixedDelay
fixedRate和fixedDelay都是表示任务执行的间隔时间fixedRate和fixedDelay的区别:fixedDelay非常好理解,它的间隔时间是根据上次的任务结束的时候开始计时的。比如一个方法上设置了fixedDelay=5*1000,那么当该方法某一次执行结束后,开始计算时间,当时间达到5秒,就开始再次执行该方法。fixedRate理解起来比较麻烦,它的间隔时间是根据上次任...原创 2018-10-29 13:57:45 · 109159 阅读 · 13 评论 -
Config Server从Git仓库读取配置文件
记录一下今天配置config server遇到的问题。。。Config Server 的配置文件application.yml,代码如下spring: application: name: config-server cloud: config: server: git: uri: https://github.c...原创 2018-09-29 09:01:09 · 4155 阅读 · 2 评论