摘要:
一、ROW_NUMBER () --语法形式: ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2) --解释: 根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的) 举例说明: selec 阅读全文
摘要:
一、Spring 中 Aop 的实现 如果代理对象有接口,就用 JDK 动态代理。JDK 动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法时,会先调用实现了 InvokeHandler 接口的 invoke() 方法,来实现业务增强 如果代理对象没有接口,那么就直接使用 Cglib 阅读全文
摘要:
代理模式和装饰器模式很像,这里用【到咖啡馆喝咖啡】作例子来讲解。 基础实现 定义一个咖啡的接口。 public interface Coffee { /** * 打印当前咖啡里有什么 */ void printMaterial(); } 定义一个苦咖啡的实现。 public class Bitter 阅读全文
摘要:
适配器模式说明:http://c.biancheng.net/view/1361.html springMVC中如何使用的适配器模式:https://www.cnblogs.com/lyh233/p/16004798.html 阅读全文
摘要:
1、源码解析说明 SpringMVC 中的 HandlerAdapter, 就使用了适配器模式; 下面我们通过源码来分析SpringMVC 中的 HandlerAdapter是如何使用适配器模式的: //前端控制器DispatcherServlet类 public class DispatcherS 阅读全文
摘要:
0、背景 建造模式(Builder模式) 假如有一个需求:盖房子,盖房子过程是一致的:打桩、砌墙、封顶。但是房子是各式各样的,最后盖出来的房子可能是高楼或别墅。 根据直接的思路,不用设计模式思想,我们也许会: 写一个 CommonHouse 抽象类,然后里面规定了打桩、砌墙、封顶三个方法; 让不同房 阅读全文
摘要:
一、 4个隔离级别 (1)读未提交:read uncommitted (2)读已提交:read committed (3)可重复读:repeatable read (4)串行化:serializable 脏读不可重复读幻读 Read uncommitted √ √ √ Read committed 阅读全文
摘要:
先祭一张图,可以思考一下为什么? 一、介绍 equals() 的作用是用来判断两个对象是否相等。 hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。 二、关系 我们以“类的用途”来将“hashCode() 和 eq 阅读全文
摘要:
一、ThreadLocal简介 多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。 ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线程访问出现线程不安 阅读全文
摘要:
答案: controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。 简单的验证 @Controller public class ScopeTestController { private int num = 0; @RequestMappin 阅读全文