- 博客(7)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 笔记-spring aop。
横切关注点在应用中分布于多处的与业务逻辑代码无关的处理逻辑,最经典的就是日志记录,记录每个请求以及请求的时间。这些代码和业务逻辑混合在一起造成了我们的代码结构混杂以及难以维护的后果。如果能把这些关注点全部抽取出来那不是很好么,因此想到之前java的动态代理和cglib代理,其实这并不是很难的事情。代理类拦截方法,记录日志,然后调用业务逻辑方法。而这件事情,而专门干这件事情的就是AO
2017-09-30 11:52:34 264
原创 CGLib代理
前篇说过,java自身动态代理是基于接口的。真正的业务逻辑必须实现你要代理的接口,java在运行时根据接口动态生成一个实现类,该实现类代理了真正的业务逻辑(内部调用业务方法)。因此是面向接口代理,业务类和代理接口之间是实现关系。而CGLib则是面向对象代理的,底层是jvm用一个类的字节码创建一个子类,子类代理了真正的业务逻辑,子父类之间是继承关系,所以你要代理的类最好不要申明成
2017-09-29 15:21:20 233
原创 设计模式-代理模式
代理模式有三个主体,代理,委托代理,具体实例。它最大的作用就是做到了代理和具体实例的解耦,让代理与具体实例之间没有直接关系。举个栗子:最近刚好ipx出来,你高高兴兴的买了回来,刚买好回到家没想到一不小心就掉地上,碎屏了,那当然不开心了,找到专卖店去必须让他们维修。因为你知道专卖店是可以搞定这个事情的,具体是给你换一个呢还是修一下呢,你不知道也不用清楚。第二天来拿果然是好了,美滋
2017-09-25 16:44:16 173
原创 笔记-java基础,静态代码块,构造代码块,构造函数。
1.构造代码块:直接被两个{}叫做构造代码块,既然有构造两个字,那就和类构造有着关系,构造代码会在每次调用类的构造函数之前先执行一遍。也就是说构造代码块是对所有对象的统一构造。{}2.静态代码块:被static修饰的代码块叫做静态代码块,当类被加载带jvm虚拟机时执行且只执行一遍。而类什么时候会被加载。当你new对象或者直接调用类中的静态方法时jvm就会加载这个类。static
2017-09-18 19:22:53 361
原创 笔记-ThreadLocal简单理解
这几天翻阅ThreadLocal的资料,以及翻阅了jdk源码,下面整理一下思绪说说我的理解。就像字面意思一样,ThreadLocal就是线程本地的意思,他存在的意义是为每个线程存储单独的变量,该变量在线程内可见。网上很多资料有提到说也是为了线程完全问题,这么说其实也是对的,因为他确实可以避免线程安全问题,但是以我个人理解来看,ThreadLocal类其实已经和线程完全问题完全分离开来了,这
2017-09-17 13:19:30 325
原创 笔记-java四大引用(强引用,软引用,弱引用,虚引用)
一个系统里有成千上万个类,如果不及时清理的话,就会造成内存溢出。java在jdk1.2版本的时候优化了提供了类来和GC进行交互,回收长时不用的对象,释放内存空间。避免内存溢出。这些类都在java.lang.ref包下。而一个类的清理则分为四个等级,依次是强,软,弱,虚四个等级。强引用下面这行代码就是强引用。Object obj = new Object();...
2017-09-14 18:16:26 254
原创 笔记-java线程基础
多线程为多个代码执行单元获取cpu执行自己专属的代码。方式一:extends java.lang.Thread 实现Thread的子类,这种方式的线程,new是创建多个实例。方式二:implement java.lang.Runnable实现Runnable接口。1.继承Runnable接口必须要实现run方法,而继承Thread类则不需要。
2017-09-01 19:47:46 302
jquery-2.1.1
2015-09-18
svn i:xxx is already locked!
2017-02-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人