=======================执行流程

1. 从页面开始,提交表单或者点击链接会触发一个action

2. action交给struts2处理,读取src目录struts.xml文件,在配置中找到对应的action

3. 根据class="XXXAction"交给Spring(为什么struts的action会交给spring处理呢?

  原因是:Struts2提供一个jar包:struts2-spring-plugin-2.1.2.jar,有个struts.properties文件配置了这样一句话:struts.objectFactory.spring.autoWire = name。

也就是有了上面那个jar包之后,根据name自动提交给Spring处理),读取Spring容器的配置文件/WebRoot/WEB-INF/applicationContext.xml文件。 根据applicationContext.xml配置文件找到xxx.xxx.action.xxxAction类,

其中有一个属性xxxService,并提供了setxxxService()方法,由applicationContext.xml文件得知该xxxService对象由Spring容器依赖注入,set注入。

4. 取得xxxService对象(接口对接口实现类的一个引用)后,调用它的方法。后面的就是访问DAO了,一长串省略号代替

5.执行的结果会在action的对应的方法中以字符串的形式给出。然后根据配置文件中的result.找到下一步要执行的动作,是跳转到页面显示还是继续交给其他的action处理。

6. 显示页面。 =========================

执行原理

在struts-config.xml 中的action的type实现spring 的请求代理 。

而在spring的配置文件中对action类进行注入。

action类中注入service 而在service中注入dao. 当服务器起动时,spring会对类自动设置 。

当访问*.do时。它的执行的顺序。

从action --->service----->dao.然后反回。

最新文章

  1. jvm内存区域
  2. AngularJs2 学习之路-笔记1-Atscript Ts ES6包含关系
  3. Windows 2012 R2图标以及字体颜色发生变化更改成默认设置
  4. XHTML与HTML的区别
  5. mysql死锁问题分析
  6. 使用C#开发屏幕保护程序步骤
  7. tomcat bug之部署应用的时候经常会发上startup failed due to previous errors
  8. java基础之 switch
  9. 关于a标签的target属性
  10. IOS缓存之NSCache缓存
  11. HDU5780 gcd 欧拉函数
  12. android 注销
  13. ueditor 百度编辑器 自定义图片上传路径和格式化上传文件名
  14. js触摸屏案例
  15. Enze fourth day(循环语句 一)
  16. [DP之树形DP]
  17. HDU 5534 Partial Tree
  18. JS框架设计读书笔记之-选择器引擎01
  19. UVA 11825 Hackers' Crackdown
  20. PEM routines:PEM_read_bio:no start line

热门文章

  1. Spring cloud父项目的建立
  2. vc++如何创建窗口
  3. vc++如何创建程序01
  4. HILLSTONE sg6000 g5150 怎么恢复出厂设置
  5. php进程控制
  6. php实现多图上传功能
  7. Asp 6种页面转向方法
  8. 自己对WEBGL坐标系的转换过程的理解【如图】
  9. [luogu2047 NOI2007] 社交网络 (floyed最短路)
  10. 【python正则】工作中常用的python正则代码