java s2sh逻辑删除_一个Web项目中S2SH的整合方式

第一部分:Web.Xml中ContextLoaderListener的相关配置在工程目录下的\WebContent\WEB-INF\web.xml中,我们可以发现以下配置:

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngcontextConfigLocation4f1150b881333f12a311ae9ef34da474.png/WEB-INF/applicationContext-*.xml4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.pngorg.springframework.web.context.ContextLoaderListener

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

以上第一段XML中,contextConfigLocation参数定义了要载入Spring上下文的配置文件,这里采用了通配符的方式,也可以通过逗号符来分隔多个文件。

以上第二段XML定义了一个监听器,它适用于Servlet2.3及其以上版本,这个监听器会随着WebApp的启动而启动,并加载contextConfigLocation参数中定义好的Spring配置文件。若是在Servlet2.3以下版本中,则需要定义org.springframework.web.context.ContextLoaderServlet来载入配置文件。

第二部分:Action Bean的配置接下来我们需要将Struts2的Action交给Spring管理,以com.heyang.module.contract.action. CheckSoleContractNameAction类为例,它在Spring配置文件\WebContent\WEB-INF\applicationContext-action.xml中的相应配置为:

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

由上面的XML知道,如果我们取得名为checkSoleContractNameAction的bean,Spring将通过反射调用一个com.heyang.module.contract.action.CheckSoleContractNameAction类的实例,并将一个名为contractService的bean注入进去,当然CheckSoleContractNameAction需要拥有此属性并具备对应的setter/getter。

第三部分:在Struts配置文件中将url映射到Spring上下文中的bean

这种方式是通过指定的class属性为Spring配置文件中相应bean的id值来做到的,再以CheckSoleContractNameAction为例,它在Struts2配置文件WebContent\WEB-INF\struts-cfg\contract\struts.xml中的相应设置为:

这样,当页面中url有对应用上下文/contract/checkSoleContractName.action?...

时,com.heyang.module.contract.action.CheckSoleContractNameAction类的execute方法将会来处理用户的请求。注意,这段url中,应用上下文是WebApp Context,contract是action所在包的名称空间,checkSoleContractName则是action的name。

至此,Struts2和Spring的整合配置讲述完毕。

第四部分:Struts2与Spring的整合原理在\WebContent\WEB-INF\lib\下存在一个struts2-spring-plugin-2.0.9.jar,这个插件包的作用是通过覆盖(override)Struts2的ObjectFactory来增强核心框架对象的创建。当Struts2需要根据配置文件创建一个Action的时候,它会用Struts2配置文件中的class属性去和Spring配置文件中的id属性进行关联,如果能找到,则由Spring创建;否则由Struts 2框架自身创建。这个功能是通过插件提供的两个拦截器实现的,默认情况下框架使用的自动装配策略是name,也就是说框架会去Spring中寻找与Action属性名字相同的bean,可选的装配策略还有:type、auto、constructor等。

第五部分:Spring与Hibernate的整合通常来说,每个负责具体请求的Action都会被注入一个或多个Service bean(参见applicationContext-action.xml),而每个Service Bean都会被注入一个DAO bean(参见applicationContext-dao.xml),而每个dao bean都被被注入一个hibernateTemplate来与数据库交互(参见applicationContext-dao.xml),而在applicationContext-db.xml中,说明了hibernateTemplate的由来,它最终会找到一个datasource从而找到数据库。

这样,从前台Struts2的控制器到后台数据库,S2SH整个链条就被串起来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值