《研磨struts2》第十五章 整合Spring 之 15.1 概述
在前面学习了Struts2中的各个核心技术和多种组件,但是,在真正做项目的时候,Struts2只是帮我们处理Web层的日常任务和常见问题,那么,其他的部分呢?
?????? 在实际项目开发的时候,通常把程序划分成很多层次,也就是分层开发,比如大家熟悉的三层开发:表现层、逻辑层、数据层,它们的职责分别是:
?????? 在这三层交互的时候,通常有如下约定:

图15.1 表现层、逻辑层、数据层之间的关系
Struts2就是一个表现层的框架,接下来就来看看动作类Action如何调用逻辑层组件,通过一个简单得示例来做说明,只是做出示范性质的逻辑层接口与逻辑层实现,并不实现实际的功能。示例代码如下:
?
java代码:查看复制到剪贴板打印接下来写一个示范性质的Action,实现根据用户输入的编号去获取用户名字的功能,Action中会先得到用户的编号,然后去调用逻辑层接口获取用户名字,将名字保存下来供下一个页面使用。示例代码如下:
?
java代码:查看复制到剪贴板打印注意:在前面讲过表现层在调用逻辑层的时候,通常应该通过接口调用。仔细看一下,这个Action代码写的符合要求吗?
Action作为表现层组件,在调用逻辑层组件的时候,只应该知道逻辑层组件的接口,也就是SampleService接口,但是在execute方法里还是出现了逻辑层组件的实现类,也就是SampleServiceImpl类,这显然是不符合要求的,那怎么办呢?
不要着急,继续往下看,其中一个优秀的解决方案就是使用Spring。
在上一节的示例中,SampleAction调用了SampleServiceImpl的方法,也可以这么说,SampleAction作为客户端依赖于SampleServiceImpl这个服务端。那么,该怎么管理它们之间的依赖关系呢?很显然,可以借助Spring框架来管理对象间的依赖关系。
Spring的知识很多,这里并不会详细讲解Spring的知识,只是一起来看看Struts2和Spring如何结合起来,并使用Spring框架的IoC/DI容器来管理对象之间的依赖关系。
另外,这里只讲述Spring中和Struts2相关的知识,更多Spring的知识,请参看Spring的文档或是资料。
?
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/4135.html】
欢迎访问http://sishuok.com获取更多内容