1.2 使用场景
使用上面说到的各类模块,你可以在各种场合使用Spring的事务管理和Web框架实现包括从Applet到企业级的各种应用。
典型的完全特性的Web应用架构图
使用Spring的“事务管理特性”,Web应用是完全的事务化的,提供类似于EJB的基于容器的事务管理。你所有的业务逻辑可以用简单的POJOs来实现,而它们由Spring的IoC容器管理。此外,还包括对于发送Email的支持,对于独立于Web层的机制的支持(这样,你可以选择在哪儿执行验证规则)。Spring对于ORM的支持是和JPA、Hibernate、JDO和iBatis集成起来的;例如,如果使用Hibernate,你可以同时使用现有的映射文件和Hibernate的SessionFactory配置文件。窗体控制器(Form controllers)无缝地将Web层和业务模块集成起来,从而不需要去实现行为窗体(ActionForms)或者用来传送Http参数到业务模块的类。
使用第三方Web框架的Spring中间层架构图
有时候,当前的环境不允许你完全迁移到另一个不同的框架。Spring并不要求你使用第三方框架的所有功能;它并不是一个“要么所有,要么什么都没有”(all-or-nothing)的解决方法。例如表现层使用WebWork、Struts、Tapestry或者其他的UI框架,而中间层则可以使用Spring,这两者可以很好的集成起来。你唯一需要做的就是使用Spring的ApplicationContext来封装你的业务逻辑,同时使用Spring的WebApplicationContext来集成你的Web应用层。
远程调用场景图
当你需要访问现有的web services的时候,你可以使用Spring的Hessian-,Burlap-,Rmi-或者JaxRpcProxyFactory类。这些类使得你在访问存在的应用方法的时候不再那么困难。
EJBs-封装现有的POJOs图
Spring也为EJB提供了一个access-和abstraction-层,你可以利用它将现有的POJOs封装在无状态的Session Beans中,这样你就可以在需要较高安全性的Web应用中使用这些Bean了。