bored even depressed
ORM ioc mvc 设计 思想
设计模式:工厂模式
IOC相关DI 相关 (理解为容器控制对象这一个层面,Bean依赖容器和容器注入Bean的依赖资源)
工厂模式 ,实例工厂,静态工厂 : spring 实例化 bean ,构造器实例化Bean ,工厂模式实例化bean
Bean依赖容器 : scope: singleton(静态属性方式和注册表方式),prototype(每次都是一个根据Bean定义创建的全新Bean) 及 web作用域
public class Singleton {
//1.私有化构造器
private Singleton() {}
//2.单例缓存者,惰性初始化,第一次使用时初始化
private static class InstanceHolder {
private static final Singleton INSTANCE = new Singleton();
}
//3.提供全局访问点
public static Singleton getInstance() {
return InstanceHolder.INSTANCE;
}
} //线程安全,惰性加载。JVM 来初始化实例保证正确又实例只有一个,一个类在一个ClassLoader中只会被初始化一次
双重锁定检查(DCL)
public class SingletonKerriganD {
/**
* 单例对象实例
*/
private static volatile SingletonKerriganD instance = null;
public static SingletonKerriganD getInstance() {
if (instance == null) {
synchronized (SingletonKerriganD.class) {
if (instance == null) {
instance = new SingletonKerriganD();
}
}
}
return instance;
}
}
Spring3.0带来的新特性
EJB http://blog.csdn.net/jojo52013145/article/details/5783677
a.EJB实现原理: 就是把原来放到客户端实现的代码放到服务器端,并依靠RMI进行通信。
b.RMI实现原理 :就是通过Java对象可序列化机制实现分布计算。
c.服务器集群: 就是通过RMI的通信,连接不同功能模块的服务器,以实现一个完整的功能。
Spring的核心就是IOC和AOP,1.通过使用IoC能够降低组件之间的耦合度,最终,能够提高类的重用性 2.AOP日志记录、权限控制、性能统计,.3.更利于整个产品或系统(持续)集成和4.配置
IOC 作用
APO 作用
IOC,Invert Of Control,控制反转
简单说一下,IOC就是其实就是依赖注入,即用接口编程,在程序中不出现new关键字,而是用接口来命名引用,然后通过某种方式把接口的某个实现类的实例注入到引用里,从而实现接口与具体实现类的松耦合。
AOP方式很类似filter,就是在程序正常的业务流中间像切面一样插入很多其他需要执行的代码,比如登录时候,在进入登录页面前写入日志,很常用的,尤其是跟数据库有关的,或者跟支付有关的程序肯定会在每一步前面插入日志
AOP Advice(AOP通知)分为:
前置通知 后置通知 异常通知 环绕通知
Spring 事务管理 :
http://war-martin.iteye.com/blog/1396335
Spring的事物有几种方式?谈谈spring事物的隔离级别和传播行为?
回调函数:(灵活实现方法体。)
简而言之,回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。
(回调函数就是那些自己写的,但是不是自己来调,而是给别人来掉的函数。
消息响应函数就可以看成是回调函数,因为是让系统在合适的时候去调用。这不过消息响应函数就是为了处理消息的,所以就拿出来单做一类了。其实本质上就是回调函数。
但是回调函数不是只有消息响应函数一种,比如在内核编程中,驱动程序就要提供一些回调函数,当一个设备的数据读写完成后,让系统调用这些回调函数来执行一些后续工作。
回调函数赋予程序员这样一种能力,让自己编写的代码能够跳出正常的程序控制流,适应具体的运行环境在正确的时间执行。)
jdbcTemplate.query(sql, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs){}
}