鸡康

Spring Cache使用

cacheable:https://cloud.tencent.com/developer/article/2225485 https://blog.csdn.net/zzhongcy/article/details/100543263 https://juejin.cn/post/

静态代理、动态代理-JDK和CGLIB代理

静态代理与动态代理,AOP、都可以用来做增强 静态代理 动态代理有两种-JDK动态代理和CGLIB动态代理 spring会使用哪种代理方式呢? 1、如果代理目标对象实现了接口,那么会默认使用jdk动态代理,代理对象是接口也可以设置强制使用cglib代理方式,如果代理目标对象只是一个普通对象,并没有实现接口,那么会使用CGLIB代理 为什么jdk代理基于接口实现? 因为在jdk代理中,获取代理目标对象的方法是通过使用Object.getClass.getInteface方法来生成代理实例对象

Java事务-传播性、事务失效

事务的传播性是Spring特有的,基于Spring AOP技术实现,原方法并不具备事务概念,只是Spring AOP给方法动态加上事务功能,目的是确保数据库的数据一致性。 程序方法之间存在调用,对应必然也会有事务的传播,如果各个方法间都加了事务,此时就更加值得探讨了,事务传播就是讨论调用者和被调用者

Java过滤器Filter-日志打印请求信息

Java过滤器 通过实现Filter接口,重写doFilter方法做增强操作。 Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典

Java线程池、异步任务

创建线程池 @Configuration @EnableAsync //开启异步执行 public class ThreadPoolTaskConfig { /** * 创建线程池后默认线程数是0,任务来了才会创建线程去执行 * 当线程池中的&

Java编程式事务

场景: 同一个接口方法里有多个数据库操作,A操作为插入数据库操作,数据库B为查询操作,B操作依赖于A操作,如果只是直接编写代码A、B操作,可能会出现B不能得到正确结果情况。A操作执行数据库插入操作,B再去查询,但执行A的时候,可能还没有执行完成就执行到B操作了,那么B就不会的到正确的结果。 解决:

mysql定时水平分表

Px存储过程+事件(定时任务)实现定期水平分表,比如按月分表。 1、首先创建存储过程 存储过程: 入参为表前缀,数据库名。 CREATE DEFINER=`

mysql慢查询优化

sql语句查询慢都是因为引起了filesort(文件排序,根据索引或者全表扫描) 1.走索引 table表有复合索引(age,score),走索引需要符合最左匹配原则,一般的情况就不赘述了,要注意使用order by或者group by时,如:select * from table where ag