仓酷云

标题: 来看在struts2中集成Spring [打印本页]

作者: 小女巫    时间: 2015-1-18 11:10
标题: 来看在struts2中集成Spring
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)
Spring的官方界说是:一个轻量级的IoC和Aop容器框架,它利用了一种叫做依附注进的手艺。所谓依附注进,就是指将创立对象和协定依附对象之间互助的义务从对象本身直达移到“工场”中往,这个“工场”一般由IoC容器供应。
Struts2与Spring的集成要用到Spring插件包,这个包是同Struts2一同公布的。Spring插件是经由过程掩盖(override)Struts2的ObjectFactory来加强中心框架对象的创立。当创立一个对象的时分,它会用Struts2设置文件中的class属性往和Spring设置文件中的id属性举行联系关系,假如能找到则由Spring创立,不然由Struts2框架本身创立,然后由Spring来拆卸。Spring插件详细有以下几个感化:
1.同意spring来创立Action、Interceptror和Result
2.由Struts创立的对象可以被Spring拆卸
3.供应了2个拦阻器来主动拆卸action,假如没有利用SpringObjectFactory的话
这里要注重的是,我们不用在Spring中往注册action,只管我们能够这么往做,一般Struts框架会主动的从actionmapping中创立action对象。
要完成与Struts与Spring的集成有以下几步
1.将struts2-spring-plugin-2.0.8.jar文件包括到我们的使用中,放到WEB-INF/lib目次上面便可。在这个插件包中有个struts-plugin.xml文件,它的内容以下:
<struts>
<beantype="com.opensymphony.xwork2.ObjectFactory"name="spring"class="org.apache.struts2.spring.StrutsSpringObjectFactory"/>
<constantname="struts.objectFactory"value="spring"/>
<packagename="spring-default">
<interceptors>
<interceptorname="autowiring"class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
<interceptorname="sessionAutowiring"class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>
</interceptors>
</package>
</struts>
这里它将框架常量struts.objectFactory掩盖了,设置为”spring”,实在这里是利用了缩写,我们能够写全称:org.apache.struts2.spring.StrutsSpringObjectFactory。这个缩写的”spring”是和bean设置中的name属性绝对应的。默许情形下一切由框架创立的对象都是由ObjectFactory实例化的,ObjectFactory供应了与别的IoC容器如Spring、Pico等集成的办法。掩盖这个ObjectFactory的类必需承继ObjectFactory类大概它的任何子类,而且要带有一个不带参数的机关办法。在这里我们用org.apache.struts2.spring.StrutsSpringObjectFactory取代了默许的ObjectFactory。
别的,下面我们说了,假如action不是利用SpringObjectFactory创立的话,插件供应了两个拦阻器来主动拆卸action,默许情形下框架利用的主动拆卸战略是name,也就是说框架会往Spring中寻觅与action属性名字不异的bean,可选的拆卸战略另有:type、auto、constructor,我们能够经由过程常量struts.objectFactory.spring.autoWire来举行设置。
2.设置Spring监听器,将Spring.jar包包括到使用中
将上面一段话拔出到web.xml文件中,同时将spring.jar文件放到WEB-INF/lib目次上面。
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3.使用Spring设置文件来注册对象
这以后的步骤就和我们利用独自利用Spring一样了,如今我们就已完成了Struts与Spring的集成了。这里有一点要注重的是,我们还要指定Spring设置文件的地址,默许情形下,容器会到WEB-INF目次上面往寻觅applicationContext.xml文件。假如我们想指定其余中央的设置文件大概指定多个设置文件,能够经由过程在web.xml文件中界说context-param元从来指定,以下所示:
<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml,classpath:applicationContext-*.xml</param-value></context-param>

下面一段话暗示WEB-INF上面的applicationContext.xml文件和classpath上面的一切婚配applicationContext-*.xml形式的文件城市作为Spring设置文件被装载。

你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难
作者: 莫相离    时间: 2015-1-20 15:47
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者: 若相依    时间: 2015-1-29 12:36
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 金色的骷髅    时间: 2015-2-6 00:53
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 活着的死人    时间: 2015-2-14 04:03
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 再现理想    时间: 2015-3-4 04:30
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 透明    时间: 2015-3-11 16:38
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者: 变相怪杰    时间: 2015-3-19 01:34
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 冷月葬花魂    时间: 2015-3-26 22:55
是一种突破用户端机器环境和CPU




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2