java每日5问(第39天)

Spring 中 beanFactory 和 ApplicationContext 的联系和区别?

BeanFactory 是 spring 中较为原始的 Factory,无法支持 spring 的许多插件,如 AOP 功能、
Web 应用等。
ApplicationContext 接口是通过 BeanFactory 接口派生而来的,除了具备 BeanFactory 接口的功能外,还具备资源访问、事件传播、国际化消息访问等功能。
总体区别如下:
1) 使用 ApplicationContext,配置 bean 默认配置是 singleton,无论是否使用,都会被实例化。优点是预先加载,缺点是浪费内存;
2) 使用 BeanFactory 实例化对象时,配置的 bean 等到使用的时候才会被实例化。优点是节约内存,缺点是速度比较慢,多用于移动设备的开发;
3) 没有特殊要求的情况下,应该使用 ApplicationContext 完成,ApplicationContext 可以实现
BeanFactory 所有可实现的功能,还具备其他更多的功能。

SpringIOC 注入的几种方式?

构造器注入set 方法注入接口注入

拦截器与过滤器的区别?

1、拦截器是基于 java 的反射机制的,而过滤器是基于函数回调
2、拦截器不依赖与 servlet 容器,过滤器依赖与 servlet 容器。
3、拦截器只能对 action 请求起作用,而过滤器则可以对几乎所有的请求起作用。
4、拦截器可以访问 action 上下文、值栈里的对象,而过滤器不能访问。
5、在 action 的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

SpringIOC 是什么?

Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。

AOP 有哪些实现方式?

实现 AOP 的技术,主要分为两大类:
静态代理 - 指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强;
编译时编织(特殊编译器实现)
类加载时编织(特殊的类加载器实现)。
动态代理 - 在运行时在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。JDK 动态代理、CGLIB

猜你喜欢

转载自blog.csdn.net/qq_39899164/article/details/107545064
今日推荐