1.监听器和拦截器的区别
拦截器是基于java反射实现的,而过滤器是根据函数回调实现的;
拦截器不依赖servelt,过滤器依赖servelt;
拦截器只能对action请求起作用,过滤器可以对所有请求起作用;
拦截器可以访问action上下文、值、栈里的值,而过滤器不能访问;
在action的生命周期内,拦截器可以多次被调用,而过滤器只能在容器被初始化时被调用一次;
拦截器可以获取IOC容器的各个Bean,过滤器不能。
Spring中用到的设计模式
简单工厂:Spring中BeanFactory就是工厂模式的提现,根据传入一个唯一的标识来获得Bean对象;
模板模式:在各种BeanFactory以及ApplicationContext实现中用到了;
代理模式:在AOP实现中用到了动态代理;
单例模式:在创建Bean的时候;
外观模式:Tomcat中有很多场景都使用到了外观模式,因为Tomcat中有很多不同的组件,每个组件需要相互通信,但又不能将自己内部数据过多地暴露给其他组件;
策略模式:Java要求如果定义的复合对象要有排序的功能,就自行实现Comparable接口或Comparator接口;
原型模式:使用原型模式创建对象比直接new一个对象在性能上好得多,因为Object类的clone()方法是一个native方法,它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非常明显;
迭代器模式:实现了Iterable接口,则表示某个对象是可被迭代的;Iterator接口相当于是一个迭代器,实现了Iterator接口,等于具体定义了这个可被迭代的对象时如何进行迭代的。