`
85977328
  • 浏览: 1903635 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring3.0.5与zk5.0.5的集成详细说明

阅读更多
一 前言
    spring3.0.5和zk5.0.5的集成,与spring和struts的集成原理是一样的。就是由spring来管理mvc里的业务逻辑层。他的好处实在太多了,下面笔者列出几条供大家参考:
1.可以由spring来控制zul对应的类,进行singleton和prototype的设置;
2.性能上的提高,如果使用了singleton,同时类中,没有属性同步的问题,则性能会明显提高;
3.页面编写简单,通过 ${} 来访问spring里配置的bean;

二 准备工作
1.环境
jdk1.6.0.23
tomcat6.0.30
eclipse3.6.1_javaee

2.包
1)zk5.0.5 CE
breeze.jar
bsh.jar
commons-fileupload-1.2.1.jar
commons-io-1.4.jar
fckez.jar
groovy.jar
jruby.jar
js.jar
jython.jar
zcommon.jar
zcommons-el.jar
zhtml.jar
zk.jar
zkplus.jar
zul.jar
zweb.jar

2)zkspring插件
zkspring-core.jar

3)srping3.0.5
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar

4)log4j
log4j-1.2.16.jar
commons-logging-1.1.1.jar

三 配置
1.web.xml,此处什么都没做,就是zk和spring的独立配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
	<display-name>zk5.0.5_spring3.0.5</display-name>
	<!-- log4j配置,必须要在最前面 -->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.properties</param-value>
	</context-param>
	<context-param>
		<param-name>log4jRefreshInterval</param-name>
		<param-value>60000</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
	<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>webApp.root</param-value>
	</context-param>
	<!-- spring配置 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- Spring 刷新Introspector防止内存泄露 -->
	<listener>
		<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
	</listener>
	<!-- zk5.0.5 -->
	<listener>
		<description>
  	Used to cleanup when a session is destroyed</description>
		<display-name>ZK Session cleaner</display-name>
		<listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>
	</listener>
	<servlet>
		<description>
  	The ZK loader for ZUML pages</description>
		<servlet-name>zkLoader</servlet-name>
		<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>
		<init-param>
			<param-name>update-uri</param-name>
			<param-value>/zkau</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet>
		<description>
  	The asynchronous update engine for ZK</description>
		<servlet-name>auEngine</servlet-name>
		<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>zkLoader</servlet-name>
		<url-pattern>*.zul</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>zkLoader</servlet-name>
		<url-pattern>*.zhtml</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>auEngine</servlet-name>
		<url-pattern>/zkau/*</url-pattern>
	</servlet-mapping>
	<!-- 系统属性 -->
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
		<welcome-file>index.zul</welcome-file>
	</welcome-file-list>
</web-app>


2.log4j.properties
log4j.rootLogger=DEBUG,appender1
# org.springframework包下面所有的日志输出的级别设为DEBUG
log4j.logger.org.springframework=INFO
# 控制台输出
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
# 立即输出
log4j.appender.appender1.immediateFlush=true

3.applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans 
xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
http://www.springframework.org/schema/aop  
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<bean id="myData"  class="com.phl.MyDataImpl"/>
<bean id="myTest" class="com.phl.MyTest" scope="singleton"/>
</beans>


四 核心部分
index.zul的部分,<window apply="${myTest}">为集成后的方式,集成前,我们是这样设置的<window apply="com.phl.MyTest">
<?xml version="1.0" encoding="utf-8"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<window apply="${myTest}">
	<grid>
		<rows>
			<row forEach="${myData.elementsList}">
				<label value="${each}" />
			</row>
		</rows>
	</grid>
	<separator visible="true" />
	<listbox>
		<listhead>
			<listheader label="测试数据" sort="auto" />
		</listhead>
		<listitem forEach="${myData.elementsList}">
			<listcell label="${each}" />
		</listitem>
	</listbox>
	<button id="btnOK" label="测试"/>
</window>


五 zk的犀利用法
    下面的用法,也可以获取spring关联的类,但他不会执行构建等初始化方法,用起来,只是跟普通的类一样。所以不推荐使用。
<zscript><![CDATA[
//通过spring来获取单例形式的关联java类
import org.zkoss.zkplus.spring.SpringUtil;
import com.phl.*;
MyTest2 mt = (MyTest2) SpringUtil.getBean("myTest2");
]]></zscript>
六 总结
1.log4j正确配置
2.spring3.0.5可以独立使用
3.zk5.0.5可以独立使用
4.导入包zkspring-core.jar,就可以在zul页面里,通过 ${} 访问bean,进而得到集成的效果
5.包都比较好找,我这里传上一份lib为空的项目,随后完整的项目,我会逐步上传,请大家关注
6.spring3.0.5+zk5.0.5+hibernate3.6(jpa2.0)的集成,详细看完我的2篇文章,大家能够实现现在最流行的zsh架构了吧^-^

spring3.0.5下载地址http://www.springsource.org/download
zk5.0.5和zkspring-core下载地址http://www.zkoss.org/
log4j和commons下载地址:http://www.apache.org/

补充
1.增加ZK的犀利用法
2.更新若干错别字(2011-2-16)

版权所有-转载请说明出处.


作者简介
昵称:澳洲鸟
姓名:朴海林
QQ:85977328
MSN:6301655@163.com
  • zs.zip (10.7 KB)
  • 下载次数: 148
分享到:
评论
4 楼 85977328 2011-03-28  
seekweel 写道
看你发的工程还是蛮多的,如果用maven管理是不是更好一点,你好,我也好,大家都好。

好吧,以后我会用maven发布工程的
但是并不是所有人都需要maven的
不适合用在入门级文章里面
3 楼 seekweel 2011-03-26  
看你发的工程还是蛮多的,如果用maven管理是不是更好一点,你好,我也好,大家都好。
2 楼 85977328 2011-01-23  
mvc结构比extjs好一点
1 楼 jitabc 2011-01-23  
这个和extjs相比有什么优势?

相关推荐

    spring 3.0.5 集成cxf

    "spring 3.0.5 集成cxf"这一主题聚焦于如何将Spring 3.0.5版本与Apache CXF整合,以实现高效、灵活的服务治理。 Spring 3.0.5是Spring框架的一个稳定版本,它引入了许多增强功能和改进,包括更好的类型安全依赖注入...

    spring3.0.5 所有jar文件

    包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...

    mybatis3.0.5 and spring3.0.5jar

    标题中的"Mybatis3.0.5 and Spring3.0.5jar"暗示了这是一个关于集成Mybatis和Spring框架的讨论,特别关注的是Mybatis的3.0.5版本和Spring的3.0.5版本。这两个框架在Java开发中被广泛用于持久层操作和依赖注入。接...

    Spring3.0.5帮助文档

    Spring3.0.5帮助文档 Spring3.0.5帮助文档 Spring3.0.5帮助文档

    spring3.0.5的所以jar包

    Spring 3.0.5是该框架的一个稳定版本,它包含了多个核心模块和扩展功能。以下是对这些jar包及其包含的知识点的详细解释: 1. **org.springframework.context-3.0.5.RELEASE.jar**: 这个jar包是Spring框架的核心...

    spring3.0.5架包

    Spring MVC支持RESTful风格的URL设计,有强大的视图解析机制,并能与各种视图技术(如JSP、FreeMarker、Thymeleaf等)无缝集成。 **消息支持:** Spring还提供了消息传递的支持,包括JMS(Java Message Service)...

    spring3.0.5-dist.rar

    尽管压缩包中未直接包含Spring 3.0.5的完整文档,但通常Spring会提供详细的参考文档、用户指南和API文档,帮助开发者了解和使用其各个功能。 总结来说,"spring3.0.5-dist.rar"压缩包提供了Spring框架3.0.5版本的...

    Spring3.0.5及其依赖包

    Spring3.0.5及其依赖包,包括: spring-framework-3.0.5.RELEASE.zip spring-framework-3.0.5.RELEASE-dependencies.rar

    Spring3.0.5源码+lib包(全)

    - **其他依赖库**:如Hibernate、JTA、JMS等,这些是Spring与其他技术集成所必需的库。 以上是Spring 3.0.5的关键知识点,了解并掌握这些内容对于深入理解Spring框架和提升开发效率至关重要。在实际项目中,根据...

    Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解完整版

    总结,本实例详细介绍了如何使用 Spring MVC 3.0.5、Spring 3.0.5 和 MyBatis 3.0.4 进行全注解开发,涵盖了开发环境配置、Maven 的使用、SSM 整合以及如何在 Eclipse 和 MyEclipse 中集成 Maven。这个教程对于希望...

    spring3.0.5与JPA2.0(hibernate3.6)的集成详细说明

    本篇将详细讲解如何将Spring 3.0.5与JPA 2.0(基于Hibernate 3.6)进行集成,以构建高效、灵活的应用程序。 首先,让我们了解Spring 3.0.5的核心特性。Spring 3.0引入了若干改进和新特性,包括对JSR-303(Bean ...

    Spring3.0.5所有jar包及每个jar包作用说明文档

    8. **spring-orm.jar**:提供与ORM(Object-Relational Mapping)框架的集成,如Hibernate、JPA、iBatis等,使得Spring可以更好地与这些ORM工具协同工作。 9. **spring-web.jar**:提供了基于HTTP的基础网络支持,...

    spring 3.0.5v jar包

    Spring 3.0.5能够与Struts和Hibernate无缝集成,提供了一种高效、灵活的开发方式。 8. **Java EE兼容性**:Spring 3.0.5支持Java EE 5和6,可以很好地与EJB、JMS、JTA等企业级服务配合使用。 9. **注解驱动**:在...

    spring3.0.5 核心JAR包

    以下将详细介绍Spring 3.0.5的核心组件及其重要知识点。 1. **依赖注入(Dependency Injection,DI)**:Spring 3.0.5继续强化了DI的设计模式,允许开发者通过配置文件或注解来管理对象间的依赖关系,降低了组件间...

    spring3.0.5帮助文档chm

    spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档

    spring3.0.5所有jar包

    6. **数据访问支持**:Spring 3.0.5提供了对JDBC、ORM(如Hibernate、MyBatis)、JPA和JDO的集成,使得数据库操作变得更加简单和灵活。 7. **MVC框架**:Spring Web MVC是Spring框架的一部分,用于构建Web应用程序...

    spring2.0升级到spring3.0.5的开发包

    7. **AspectJ集成加强**:Spring 3.0进一步强化了与AspectJ的集成,使得AOP的使用更加简便,可以通过注解轻松定义切面。 8. **国际化支持**:Spring 3.0的MessageSource接口提供了更好的国际化支持,可以更方便地...

    spring3.0.5_hibernate3.5.3_struts2.2.1整合jar包

    Struts与Spring整合插件jar则是为了方便Struts和Spring之间的协作而提供的,它简化了这两个框架之间的集成,使开发者可以利用Spring的依赖注入和事务管理等优点。 总之,这个压缩包为开发者提供了一个快速搭建SSH...

    spring3.0.5.jar

    《Spring 3.0.5与AOPAlliance-1.0在Java开发中的应用》 Spring框架作为Java企业级应用开发的重要支柱,其3.0.5版本的发布为开发者提供了更为强大和灵活的工具集。这个版本的Spring不仅在核心功能上进行了优化,还对...

    MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案

    Spring3.0.5提供了对RESTful Web服务的支持,增强了与各种持久层技术的集成,如Hibernate。 Struts2.2.1是Apache软件基金会的开源MVC框架,用于构建基于Java EE的Web应用。它结合了WebWork的优点和Struts1的成熟性...

Global site tag (gtag.js) - Google Analytics