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

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

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

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

本文主要来自于美团技术,加了一些自己的理解和代码注释,并书写自己在学习过程中的一些感想。 原代码:源代码欢迎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条评论 10点热度 阅读全文

本文主要来自于美团技术,加了一些自己的理解和代码注释,并书写自己在学习过程中的一些感想。 原代码:源代码欢迎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条评论 17点热度 阅读全文

写排序算法是一个大工程,估计得好多天才可以写完。。。就慢慢写吧。未完待续。。。。 内部排序和外部排序 内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 排序算法的稳定性? 排序算法可以根据稳定性分为两种:稳定和非稳定算法。那么怎么区分它们?如果链表中存在两个相同元素,稳定排序算法可以在排序之后保持他两原来的次序,而非稳定性的则不能保证。 算法稳定性的好处:排序算法如果是稳定的,那么从一个键上排序,然后再从另一…

2017年9月12日 0条评论 0点热度 阅读全文