在理解了struts、spring、ibatis的理论及流程后,总结一下SSI对该三者的整合过程
1.业务产生(比如查找)
2.查找struts.xml文件找到处理添加业务的Action类(如selectAction)(此时为struts框架)
3.根据selectAction中的execute方法,通知相应的DAO类(如userDAO)进行查找操作(进入ibatis框架)
4.根据userDAO类中执行查找功能的方法(如:select()方法)中调用的getSqlMapClientTemplate().queryForList()函数进行查找操作(ibatis框架)
5.查找SqlMapConfig.xml文件了解到SqlMap配置文件为user.xml,进入user.xml文件,找到负责处理userDAO查找操作的select SQL语句(ibatis框架)
6.ibatis框架负责执行SQL语句,并将所得结果通过user.xml中的resultMap标签的映射关系赋给相应变量返回给userDAO(ibatis框架)
7.userDAO将查询结果返回给步骤3中的selectAction类(退出ibatis框架,进入struts框架)
8.selectAction将查询的结果进行相应处理后,将结果返回给步骤2中的struts.xml(struts框架)
9.struts.xml根据Action的结果,通知表现层显示相应页面(struts框架)
over!!!
那么spring框架跑哪去了??
在步骤5中,虽然有了SQL语句,但却没有数据源的配置操作,也就无法完成查询功能,spring在此处便担任数据源的配置,事物的处理,及一些类的依赖注入