问题: 在spring 中使用 @Transactional 、 @Cacheable 或 自定义 AOP 注解时,会发现个问题: 在对象内部的方法中调用该对象的其他使用aop机制的方法,被调用方法的aop注解失效。 这句话可能说的有点拗口,那么我们来看几个 aop 失效的例子吧 事物失效 public class TicketService{ //买火车票 @Transactional public void buyTrainTicket(Ticket ticket){ System.out.println("买…

2021年1月24日 0条评论 6点热度 阅读全文

AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。平常我门需要记录一些操作的日志,需要在操作的业务逻辑代码里嵌入日志模块的代码。这些日志模块的代码与操作的代码逻辑无关,只是做一个记录,而且在其它的操作模块里也都有类似的一段日志记录的代码。这种散布在各处的无关的代码被称为横切(cross cutting),在…

2021年1月24日 0条评论 15点热度 阅读全文

本文主要来自于美团技术,加了一些自己的理解和代码注释,并书写自己在学习过程中的一些感想。 原代码:源代码欢迎start 参考文档:https://tech.meituan.com/2016/12/02/redblack-tree.html BST 二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。 在理想的情况下,二叉查找树增删查改的时间复杂度为O(logN)(其中N为节点数),最坏的情况下为O(N)…

2020年9月21日 0条评论 4点热度 阅读全文

本文主要来自于美团技术,加了一些自己的理解和代码注释,并书写自己在学习过程中的一些感想。 原代码:源代码欢迎start 参考文档:https://tech.meituan.com/2016/12/02/redblack-tree.html BST 二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。 在理想的情况下,二叉查找树增删查改的时间复杂度为O(logN)(其中N为节点数),最坏的情况下为O(N)…

2019年10月31日 0条评论 9点热度 阅读全文