博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 4 官方文档学习(十三)集成其他web框架
阅读量:5283 次
发布时间:2019-06-14

本文共 2493 字,大约阅读时间需要 8 分钟。

重点是通用配置,非常建议看一下!有助于理解Spring的ApplicationContext与Servlet Container的关系!

 

 

1、介绍

Spring Web Flow

SWF目标是成为web应用页面flow管理的最佳解决方案。

SWF集成了现有的框架,如Spring MVC 和 JSF,在Servlet和Portlet环境中。如果你有一个(或多个)业务处理,且 受益于会话模型而非纯请求模型,那SWF可能就是解决方案。

SWF允许捕获逻辑页面flows,并将其作为自包容的模块 -- 可在不同环境中复用,所以用它来构建web应用模块(that guide the user through controlled navigations that drive business processes)是非常理想的。

欲知更多,见。

 

本章详细描述了Spring与第三方web框架的集成,如JSF。

 

Spring框架的一个核心价值观是enable choice (可选择、可拓展)。在普遍意义上,Spring不会强制使用或购买任何特定的架构、技术或方法(虽然肯定会推荐一些)。选择权留给开发者!

 

既然已经梳理了皮毛(就是前面的章节,真隐晦),那本章会将重心放在肉戏部分,就是如何集成你的web框架!由其他语言转到Java的开发者经常说的一件事是Java具有超级丰富的web框架。如此多的框架肯定不能一一涉猎,所以本章只挑选了4个最流行的web框架,先从通用的Spring配置开始,再细入特定的集成选项。

请注意,本章不会去解释如何使用具体的web框架。例如,如果你想使用JSF,我们会假定你已经熟悉了JSF。如果你需要了解更多关于具体web框架的信息,可以参考本章末尾部分。

2、Common configuration -- 通用配置

所谓通用配置,就是无论集成什么web框架都需要的配置,换句话说,就是与具体web框架无关的配置。

 

需要指出,在一个classic分层的架构中,web层仅仅是众多层中的一层;该层承担进入server侧应用的进入点(entry points),该层还委托service层的service objects (facades)来完成特定业务的使用情景。在Spring中,这些service objects、任何其他business-specific objects、dao等等,都存在于一个 busisness context 中 -- 注意,这里不包含web或表象层对象!!!表象层对象如Spring MVC controllers等通常是配置在presentation context中。

本章会详细描述如何配置一个包含所有business beans的Spring container (就是一个WebApplicationContext)。-- 包含所有???

具体的就是:所有的Spring web项目都需要在web.xml中声明一个ContextLoaderListener,然后添加一个contextConfigLocation <context-param> -- 用于指定Spring XML配置文件所在。

如下:

org.springframework.web.context.ContextLoaderListener
contextConfigLocation
/WEB-INF/applicationContext*.xml

如果不指定contextConfigLocation,ContextLoaderListener会默认查找并加载 /WEB-INF/applicationContext.xml。一旦加载了context文件,Spring就会创建一个WebApplicationContext对象 -- 基于bean definitions,并将该WebApplicationContext对象存入web应用的ServletContext中!!!--- 终于明白了,大笑

 

所有的Java web框架都是建立在Servlet API上面的,因此都可以使用下面的代码来获取由ContextLoaderListener创建的'business context' ApplicationContext:

WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);

这个类是为了方便,这样就不需要去记住ServletContext attribute的name。该类的getWebApplicationContext()方法默认查找的key是WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,如果找不到就会返回null。与其冒着空指针异常的风险,不如使用getRequiredWebApplicationContext()方法,如果没有ApplicationContext,该方法就会抛出异常。

 

一旦拥有了WebApplicationContext的引用,就可以根据名字或类型获取beans。多数开发者都是通过名字获取,然后类型强转。

 

幸运的是,本部分多数框架都有更简单的方式来查找beans。不止是获取beans更简单,还可以让你使用依赖注入。详见每种web框架。

 

3、JavaServer Faces 1.2

其他,略。

 

6、其他资源

  • The homepage
  • The homepage
  • The homepage

 

 

 

 

 

官方文档链接:

转载于:https://www.cnblogs.com/larryzeal/p/6212274.html

你可能感兴趣的文章
Spring MVC学习笔记——完整的用户登录
查看>>
Spark学习笔记——安装和WordCount
查看>>
简单的弹出拖拽窗口(一)
查看>>
100.Same Tree(Swift待解)
查看>>
数据结构与算法之图
查看>>
python之路(五)-文件操作
查看>>
Android - 点击可以转动的自定义右下角浮动FABImageButton按钮
查看>>
Spring IOC的理解
查看>>
自动化测试框架学习之一 --- 为什么要进行自动化测试?
查看>>
QT Creator 快速入门教程 读书笔记(二)
查看>>
百度云?极光?个推?
查看>>
vue2.0模拟锚点实现定位平滑滚动
查看>>
oracle 11g 命令 导入 导出表
查看>>
hdu 2766 Equilibrium Mobile
查看>>
2019春总结作业
查看>>
在Chrome Console中加载jQuery
查看>>
浅谈python 手机crash和app crash循环执行问题
查看>>
jQuery左侧菜单实例
查看>>
数据库的备份
查看>>
Java代码注释
查看>>