1. Spring 中自动装配有那些局限性?
自动装配的局限性
重写:仍需用<constructor-arg>和<property>配置来定义依赖,意味着总要重写自动装配。
基本数据类型:不能自动装配简单的属性,例如基本数据类型、String字符串、和类。
模糊特性:自动装配不如显式装配精确,如果有可能,建议使用显式装配。
2. Spring 管理事务默认回滚的异常有哪些?
Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)、Error进行回滚。
假设一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚。
3. Spring 中事务如何指定回滚的异常?
在@Transaction注解中定义noRollbackFor和RollbackFor参数指定某种异常是否回滚。
@Transaction(noRollbackFor=RuntimeException.class)
@Transaction(RollbackFor=Exception.class)
4. 什么是Spring IOC 容器?
Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。
5. Spring 中 IOC的优点是什么?
IOC 或 依赖注入把应用的代码量降到最低。它使应用容易测试,单元测试不再需要单例和JNDI查找机制。
最小的代价和最小的侵入性使松散耦合得以实现。IOC容器支持加载服务时的饿汉式初始化和懒加载。
6. Spring 中 IOC 和 DI 有什么区别?
在Spring框架中,IOC(Inversion of Control,控制反转)和DI(Dependence Injection,依赖注入)是两个核心的概念,它们在实现上有所不同,但又相辅相成。
IOC(控制反转):