![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 51
chengbinbbs
这个作者很懒,什么都没留下…
展开
-
拦截器+ThreadLocal验证用户
ThreadLocal 类定义public class UserContext { public static final ThreadLocal<String> USER_NAME = new ThreadLocal<>();}拦截器编写@Componentpublic class UserSecurityInterceptor implements HandlerInterceptor { public static final Logger log原创 2020-05-23 18:02:17 · 1016 阅读 · 0 评论 -
缓存与数据库的一致性
什么是缓存?缓存就是数据交换的缓冲区,针对服务对象的不同(本质就是不同的硬件)都可以构建缓存。目的是,把读写速度慢的介质的数据保存在读写速度快的介质中,从而提高读写速度,减少时间消耗。 例如:CPU 高速缓存 :高速缓存的读写速度远高于内存。CPU 读数据时,如果在高速缓存中找到所需数据,就不需要读内存CPU 写数据时,先写到高速缓存,再回写到内存。磁盘缓存:磁盘缓存其实就...转载 2019-04-03 20:05:53 · 2024 阅读 · 1 评论 -
Spring event事件通知机制应用
Spring的事件通知机制是一项很有用的功能,使用事件机制我们可以将相互耦合的代码解耦,从而方便功能的修改与添加。举个栗子:下单成功给用户送积分。这里介绍两种实现方式:spring的event事件机制首先定义事件模型OrderEvent:public class OrderEvent extends ApplicationEvent { private Long orderId;...原创 2019-03-11 21:26:53 · 1092 阅读 · 0 评论 -
Spring Event事件通知机制
Spring的事件通知机制是一项很有用的功能,使用事件机制我们可以将相互耦合的代码解耦,从而方便功能的修改与添加。本文我来学习并分析一下Spring中事件的原理。举个例子,假设有一个添加评论的方法,在评论添加成功之后需要进行修改redis缓存、给用户添加积分等等操作。当然可以在添加评论的代码后面假设这些操作,但是这样的代码违反了设计模式的多项原则:单一职责原则、迪米特法则、开闭原则。一句话说就是...转载 2019-03-11 21:10:57 · 26833 阅读 · 5 评论 -
spring cache注解@Cacheable缓存穿透
最近发现线上监控有个SQL调用量很大,但是方法的调用量不是很大,查看接口实现,发现接口是做了缓存操作的,使用Spring cache缓存注解结合tair实现缓存操作。但是为啥SQL调用量这么大,难道缓存没有生效。测试发现缓存是正常的,分析了代码发现,代码存在缓存穿透的风险。具体注解是这样的:@Cacheable(value = "storeDeliveryCoverage", key = "#s...原创 2019-03-11 14:26:19 · 5664 阅读 · 0 评论 -
Spring Cache- 缓存拦截器( CacheInterceptor)
打开Spring Cache的核心缓存拦截器CacheInterceptor,可以看到具体实现:public class CacheInterceptor extends CacheAspectSupport implements MethodInterceptor, Serializable { @Override public Object invoke(final MethodInv...原创 2019-03-11 14:20:51 · 4623 阅读 · 0 评论 -
Java 实现抽奖
版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/liujun03/article/details/80708293 设计思路1.奖品设计 1️⃣可乐 2️⃣雪碧3️⃣辣条4️⃣咖啡5️⃣现金五毛6️⃣...原创 2019-11-07 10:27:24 · 335 阅读 · 0 评论 -
Spring参数绑定之RequestBody的使用
一、ReuqestBody 主要是处理json串格式的请求参数,要求使用方指定header content-type:application/json 二、RequestBody 通常要求调用方使用post请求 三、RequsetBody参数,不会放在HttpServletRequest的Map中,因此没法通过javax.servlet.ServletRequest#getParameter获...原创 2018-07-31 14:53:03 · 1413 阅读 · 0 评论 -
Spring @Cacheable注解类内部调用不生效
最近会员中心拼团中一个查询接口做了缓存,使用到spring cache框架。在用户状态变更的时候,清除用户的缓存cache。但是实际结果是数据库状态变了,但是缓存状态并没有清除,结果出现缓存不一致的问题。具体如下: @CacheEvict(value = "groupUserCached", key = "'user_status_' + #userId") public vo...原创 2018-07-20 10:50:58 · 11578 阅读 · 1 评论 -
spring中注入外部属性值到静态变量
最近利用tair做分布式锁的时候,在注入NS的时候发现一个bug,具体是这样的:@Componentpublic class SyncLock implements DisposableBean, DistributedLock { private static final Logger logger = LoggerFactory.getLogger(SyncLock.cla...原创 2018-07-20 10:44:19 · 1378 阅读 · 0 评论 -
Spring返回日期格式化
利用ORM数据访问层框架,查询出来的数据绑定到对象上,对于时间类型会绑定到Date类型, 我们知道Date类型的数据转成json会自动转化为时间戳,如果我们想转化为字符串怎么办?1、利用SimpleDateFormatnew SimpleDateFormat(“yyyyMMdd”).format(date);2.利用fastjson的@JSONField注解“` @JSONField(forma原创 2017-08-08 19:32:47 · 1751 阅读 · 0 评论 -
JDBC、JDBCTemplate、MyBatis、Hiberante 比较与分析
JDBC (Java Data Base Connection,java数据库连接)JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序 优转载 2017-02-03 10:08:16 · 1300 阅读 · 0 评论