面试题
Bean的创建方式
- 通过构造器创建
- 通过方法工厂创建
- 通过实例工程创建
Bean的作用域(Scope)
- singleton IOC容器仅创建一个实例对象,每次返回的是同一个Bean
- prototype IOC容器可以创建多个实例,每次返回的都是不同的实例。
- request 使用这个属性只对Http的请求产生作用,使用该属性定义Bean时,每次HTTP请求都会创建一个新的Bean, 适用于WebApplicationContext
- session 该属性仅适用于HTTPSession, 同一个Session共享一个Bean实例。不同的session使用不同的实例。
5.Global-session 所有的session共享一个Bean实例。
Bean的生命周期
- 通过构造器或工厂方法创建Bean实例。
- 设置Bean的属性值。
- 调用Bean的初始化方法。
- 当容器关闭时,调用Bean的销毁方法。
Spring事务的传播特性
- 调用 使用@Transaction(Propagation=???)设置
2.PROPAGATION_REQUIRED:当前如果没有事务,就新建一个事务,如果已经存在一个事务,加入到这个事务中
3.PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
4.PROPAGATION_NEVER:支持非事务的方式执行,如果有事务,则抛出异常。
5.PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行,如果当前没有事务,则执行与REQUIRED操作。
6.PROPAGATION_REQUIRES_NEW:创建一个事务,如果当前有事务则挂起。
7.PROPAGETION_MANDATORY:使用当前的事务,如果当前没有事务则抛出异常。
8.PROPAGATION_NOT_SUPPORTED:以非事务的方式执行操作,如果当前存在事务,把当前事务挂起。
总结
溜了,去解决问题去了。。。。