SpringMVC流程
dispatcherServlet——》handleMapping——》handleAdapter——》controller——》view reslover——》view
1.发起请求到dispatcherServlet
2.dispatcherServlet请求handleMapping查找handle(xml配置,spring注解)
3.handleMapping返回handle和interceptor
4.handleAdapter转交controller处理handle
5.controller返回modeAndView
6.viewResolver将modeAndView转为View需要的数据
7.view展示视图
spring生命周期
流程 |
实例化 BeanFactoryPostProcessor |
实例化 BeanPostProcessor |
实例化InstantilzationAwareBeanPostProcessorAdapter |
执行 InstantilzationAwareBeanPostProcessor 的 postProcessorBeforeInstantiatation 方法 |
执行 bean 构造器 |
执行 InstantiationAwareBeanProcessor postProcessorPropertyValues |
调用 BeanNameAware 的 setBeanName 方法 |
调用 BeanFactoryAware 的 setBeanFactory 方法 |
执行 BeanPostProcessor 的 postProcessorBeforeInstantiatation 方法 |
调用 InstantializingBean 的 afterPropertiesSet 方法 |
调用 Bean 的 init_method 的属性制定初始化方法 |
执行 BeanPostProcessor 的 postProcessorAfterInstantiation 的方法 |
执行 InstantiationAwareBeanPostProcessor 的 postProcessorAfterInstantialization 方法 |
初始化执行成功,程序可以使用这个 Bean |
调用 DisposableBean 的 destory 方法 |
调用 bean 的 destory_method 的属性指定销毁方法 |
Spring AOP IOC
AOP:切面编程,提供事务管理,应用于日志和权限管理等等
IOC:控制反转,由IOC容器负责实例化程序中的对象以及维护这些对象间的依赖关系。
Spring 事务隔离级别
ISOLATION_DEFAULT | 使用数据库默认级别 |
ISOLATION_READ_UNCOMMITED | 可以读取未提交的更改 |
ISOLATION_READ_COMMITED | 可以读取并发事务已提交的更改 |
ISOLATION_REPEATABLE_READ | 对相同数据的重复读取结果不变,除非本次事务改变了该数据 |
ISOLATION_SERIALIZABLE | 完全锁定当前事务,确保不发生脏读,幻读,不可重复读 |
Spring 事务传播特性
PROGRAMACTION_MANDATORY | 方法必须在事务中运行,没有事务会报错 |
PROGRAMACTION_NESTED | 方法必须在嵌套事务中运行,没有嵌套事务,将会新增嵌套事务 |
PROGRAMACTION_NEVER | 方法不能在事务中运行,如果有事务,则报错 |
PROGRAMACTION_NOT_SUPPORTED | 方法不支持在事务中运行,如果有事务,则该事务将会被挂起 |
PROGRAMACTION_SUPPORTS | 方法可以在事务中运行 |
PROGRAMACTION_REQUIRES_NEW | 方法需要在新的事务中运行,如果没有新的事务,则创建新的事务,如果有其他事务在运行,则其他事务将被挂起 |
PROGRAMACTION_REQUIRES | 方法必须在事务中运行,如果没有事务,则创建新的事务 |