`
motiftear
  • 浏览: 38721 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

SSI技术整合

    博客分类:
  • SSI
阅读更多

   SPRING的整合

A.        下载jar

首先,从spring官方网站http://www.springsource.org/下载spring的相关jar包,注意spring是一个大型项目,除了必须的spring.jar外,可支持和大部分开源组件进行整合,如下表,可根据项目的实际情况进行引用。

Spring的依赖关系

依赖关系分组

JAR文件

ant

ant.jar, ant-junit.jar, ant-launcher.jar

Spring采用Apache Ant作为其构建工具,还用来完成大量其它任务如文档生成和测试执行等。运行时Ant根本不起作用,因此发布应用时无需包含该JAR文件。

aopalliance

aopalliance.jar

AOP Alliance(http://aopalliance.sourceforge.net/)是个联合的开源协作组织,在多个项目间进行协作以期提供一套标准的AOP Java接口(interface)。 Spring AOP就是基于AOP Alliance标准API实现的。如果你打算使用SpringAOP或基于AOP的任何特性,只需这个JAR文件。

axis

axis.jar, saaj.jar, wsdl4j.jar

Spring采用Apache Axis项目来支持Spring远程调用里的JAXRPC功能。如果使用JAXRPC Remoting,那么只需要这些文件。

caucho

burlap-2.1.12.jar, hessian-2.1.12.jar

Spring远程调用(remoting)对大量不同种类的协议包括CauchoBurlapHessian提供了支持。要用哪个协议就包含这个分组里相应的JAR文件。

cglib

cglib-full-2.0.2.jar

CGLIB用来生成动态代理类(dynamic proxy classes),供核心DIAOP实现之用。由于大量Spring功能的实现都要用到CGLIB,因此你的应用几乎总需包含CGLIB

cos

cos.jar

COS com.oreilly.servlet,是个实用类的集合,对Servlets和基于web的应用很有用。Spring在两个地方要用到COS:文件 上传处理和e-mail发送。不过在这两种情形中,COS都只是实现选择之一,因此只有选用COS而非其它实现方法时,才需包含cos.jar

dom4j

dom4j.jar

使用Hibernatedom4j不可或缺,因此如果你的应用打算采用Hibernate实现ORM,就需要包含这个JAR文件。

easymock

easymock.jar, easymockclassextension.jar

Spring的测试套件用到了EasyMock,因此只有构建和运行测试套件时才用到这个JAR,无需随你的应用一起发布。

freemarker

freemaker.jar

Spring提供了FreeMarker模板引擎的包装类,还为把FreeMarker模板用作web应用的视图提供了支持。只要使用FreeMarker,就需要这个JAR文件。

hibernate

ehcache.jar, hibernate2.jar, odmg.jar

如果采用SpringHibernate集成和支持类,这些JAR文件不可或缺。如果使用其它ORM工具如iBATIS,则不需要这些JAR文件。如果使用Hibernate,则你的应用还要包含CGLIB JAR文件。

hsqldb

hsqldb.jar

Spring的示例应用使用了hsqldb.jar文件。

ibatis

ibatis-common.jar , ibatis-sqlmap.jar, ibatis-sqlmap-2.jar

使用SpringiBATIS集成类时,这些文件不可或缺;如果使用JDBC或其它ORM工具如HibernateJDO,则你的应用不需要这些文件。

itext

itext-1.02b.jar

Spring使用iText提供web层的PDF支持。只有你的web应用需要生成PDF输出时才需包含这个JAR文件。

j2ee

activation.jar, connector-api.jar, ejb.jar, jaxrpc.jar, jdbc2_0-stdext.jar, jms.jar, jstl.jar, jta.jar, mail.jar, servlet.jar, xml-apis.jar

左侧所示,J2EE相关的各种不同JAR文件数量相当可观。如果你想要使用Spring邮件支持的JavaMail实现,则需要 activation.jarmail.jar文件。要让Hibernate使用JCA Connector则需connector-api.jar,使用SpringEJB支持则需要ejb.jarjms.jar用于Spring JMS支持。对于web应用,如果想要使用Spring JSTL支持则需要servlet.jarjstl.jarSpring远程调用里的JAXRPC支持需要jaxrpc.jar文件,jta.jar 用于JTA事务支持。剩下两个JAR文件jdbc2_0-stdext.jarxml-apis.jar分别用于JDBCXML配置支持,不过只有你 使用1.3版本的JVM时才需要它们。

jakarta

jakarta-commons commons-attributes-api.jar, commons-attributes-compiler.jar, commons-beanutils.jar, commons-collections.jar, commons-dbcp.jar, commons-digester.jar, commons-discovery.jar, commons-fileupload.jar, commons-lang.jar, commons-logging.jar, commons-pool.jar, commons- validator.jar

Spring使 用了来自Jakarta Commons项目的大量组件。如果你想在应用中使用源码级元数据(metadata),就需要commons-attributes-api.jar 此外还需要commons-attributes-compiler.jar,以便将attributes编译到应用里。Struts要用到 BeanUtilsCollectionsDigesterDiscovery,Validator JAR文件,其中的CollectionsHibernate也会用到。使用DBCP连接池时,Spring JDBC支持要用到DBCPPooling则对有些示例应用不可或缺。如果想使用相应的Spring包装类来处理web应用的文件上传,则需要 FileUpload。最后,Spring处处用到了Logging,因此需在所有基于Spring的应用里包含这个JAR文件。

jakarta-taglibs

standard.jar

这是JakartaJSTL实现,一些Spring示例应用使用了这个实现。

jboss

jboss-common-jdbc-wrapper.jar

运行在JBoss应用服务器上的应用使用SpringJDBC类时,这个JAR文件不可或缺。

jdo

jdo.jar

提供SpringJDO支持。

jdom

jdom.jar

Spring里使用iBATIS 1.3时,JDOM不可或缺。本章介绍的iBATIS版本为2.0

jotm

jotm.jar, xapool.jar

如果你打算配合Spring事务抽象层一起使用JOTMjotm.jar文件不可或缺。如果打算在自己的应用里将XAPool用于连接池(connection pooling),则只需xapool.jar

junit

junit.jar

运行时根本不需要JUnit;它只用来构建和运行测试套件。

log4j

log4j-1.2.8.jar

如果想要使用Spring配置log4j日志记录,这个文件不可或缺。

poi

poi-2.5.jar

这个JAR可令Spring MVC框架支持Microsoft Excel输出。

quartz

quartz.jar

Spring基于Quartz的调度支持需要该JAR

regexp

Jakarta-oro-2.0.7.jar

使用正则表达式来指定AOP的切入点(pointcut)时需要这个JAR。第六章有更详细的介绍。

struts

struts.jar

欲配合Spring使用Struts构建web应用,Struts JAR必不可少。

velocity

velocity-1.4.jar, velocity-tools-generic-1.1.jar

Spring 供了Velocity的包装类使其支持DI,同时当你在应用中使用Velocity时,还可减少需要编写的代码量。除此之外,Spring还提供了一些 类,支持将Velocity用作web层里的视图提供者(view provider)。只要使用了上述任意特性,都需在发布里包含Velocity JAR文件。

xdoclet

xjavadoc-1.0.jar

Commons Attributes用这个JAR解析源代码文件,然后提取属性信息。如果使用了Spring Commons Attributes支持,须包含该JAR文件。

 

B.        配置监听器

Spring正常运行需要在web.xml文件中配置相关监听器,监听器的作用是用来加载所有的spring配置文件,从而将所有的bean都初始化到spring application context中。在如下引用中,可以看到我们采用的是文件名称匹配模式,只要在该路径下符合相关文件命名规范(请参考代码规范设计5.2)spring配置文件都可以加载。

引用

<context-param>

              <param-name>contextConfigLocation</param-name>

              <param-value>/WEB-INF/conf/spring/spring-context*.xml</param-value>

</context-param>
<listener>

       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

 

C.        基础配置

在工程中,程序需要正常运行必须要完成一些基础配置,比如数据源集成、事务集成等等,下面将进行详细介绍。

Ø         首先配置数据源

springPropertyPlaceholderConfigurer支持properties文件声明的常量引入,引入成功后,可按照${常量名}方式进行引入。请参考如下:

引用

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" id="propertyConfigurer">

              <property name="locations">

                     <list>

                            <value>/WEB-INF/conf/spring/spring-jdbc.properties</value>

                     </list>

              </property>

</bean>

 

Spring-jdbc.propertes配置请参考

 

在选择第三方数据库连接池时,经过我们多方长期测试,和DBCPC3PO进行对比后,发现用proxool连接池和ORACLE默契程度比较高,因此数据库连接池是采用的proxool,因此需要将proxoolProxoolDataSource配置到spring-context.xml文件中 ,如下:

引用

<bean class="org.logicalcobwebs.proxool.ProxoolDataSource" id="dataSource">

              <property name="alias"><!—别名—>

                     <value>dataSource</value>

              </property>

              <property name="driver">

                     <value>${jdbc.driver}</value><!—驱动程序—>

              </property>

              <property name="driverUrl">

                     <value>${jdbc.url}</value><!—数据库连接地址—>

              </property>

              <property name="user">

                     <value>${jdbc.username}</value><!—数据库连接用户名—>

              </property>

              <property name="password">

                     <value>${jdbc.password}</value><!—数据库连接密码—>

              </property>

              <property name="maximumConnectionCount">

                     <value>${jdbc.maxPoolSize}</value><!—数据库连接数最大值—>

              </property>

              <property name="minimumConnectionCount">

                     <value>${jdbc.minPoolSize}</value><!—数据库连接数最小值—>

              </property>

              <property name="houseKeepingSleepTime">

                     <value>${jdbc.maxIdleTime}</value><!—数据库连接最大闲置时间—>

              </property>

              <property name="prototypeCount">

                     <value>${jdbc.prototypeCount}</value><!—最小保持的空闲连接数—>

              </property>

              <property name="trace">

                     <value>${jdbc.trace}</value><!—是否启用日志跟踪—>

              </property>

              <property name="verbose">

                     <value>${jdbc.verbose}</value><!—详细信息设置—>

              </property>

              <property name="maximumActiveTime">

                     <value>${jdbc.maximumActiveTime}</value><!—连接最长活跃时间—>

              </property>

              <property name="houseKeepingTestSql">

                     <value>${jdbc.houseKeepingTestSql}</value><!—连接测试SQL—>

              </property>

              <property name="simultaneousBuildThrottle">

                     <value>${jdbc.simultaneousBuildThrottle}</value><!—一次建立连接数量—>

              </property>

              <property name="maximumConnectionLifetime">

                     <value>${jdbc.maximumConnectionLifetime}</value><!—连接最长生存时间->

              </property>

              <property name="delegateProperties">

                     <value>${jdbc.delegateProperties}</value>

              </property>

       </bean>

Ø         其次配置事务

Spring事务包括有本地连接事务和JTA事务,在系统中,采用本地连接事务,如下:

引用

<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">

              <property name="dataSource">

                     <ref local="dataSource"/>

              </property>

</bean>

<!—配置基础事务代理—>

<bean class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"

             abstract="true" id="baseTransactionProxy">

              <property name="transactionManager">

                     <ref bean="transactionManager"/>

              </property>

              <property name="transactionAttributes">

                     <props>

                <!—事务作用的方法名称,匹配模式,可声明多个—>

                            <prop key="insert*">PROPAGATION_REQUIRED</prop>

                            <prop key="update*">PROPAGATION_REQUIRED</prop>

                            <prop key="delete*">PROPAGATION_REQUIRED</prop>

                            <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

                     </props>

              </property>

</bean>

上面是对事务的基础配置,如何来使用事务将在下面揭晓,需要用到的事务的bean需要继承baseTransactionProxy那么在bean中所有的只要匹配上面声明的方法都可以拥有事务。

引用

<bean id="templateTypeDao" parent="baseTransactionProxy">

        <property name="target">

            <bean class="eoms.plan.dao.ibatis.TemplateTypeDAOiBatis">

                <property name="sqlMapClient">

                    <ref bean="sqlMapClient"/>

                </property>

            </bean>

        </property>

 </bean>

 

D.       引用配置举例

     IBATIS的整合

在开源世界中,持久层框架市场占有率最高的是HibernateiBatis,由于iBatis学习成本低,更容易使用,在系统中我们采用iBatis作为持久层框架,并集成到 Spring中,在如下引用中,注册一个sqlMapClient作为其他bean引用的ibatis客户端,因此在注册bean时,只需将sqlMapClient注入到bean中即可。

引用

<bean id="sqlMapClient" class="eoms.common.extension.SqlMapClientFactoryBean">

              <property name="dataSource">

                     <ref local="dataSource"/>

              </property>

              <property name="sqlMapClientProperties">

                     <props>

                            <prop key="jdbcDriver">${jdbc.driver}</prop>

                     </props>

              </property>

              <property name="configLocation">

<!—下面这个文件负责引入所有的ibatis xml文件—>

<!—文件命名采用匹配模式—>

                 <value>/WEB-INF/conf/ibatis/ibatis-sql-map-config*_${jdbc.dbtype}.xml</value>

              </property>

</bean>

 

引用

<bean id="planExecShuckDAO" class="eoms.plan.shuck.dao.ibatis.ExecShuckDAOiBatis">

              <property name="sqlMapClient">

                     <ref bean="sqlMapClient"/>

              </property>

</bean>

 

在系统中,使用的是oracle数据库,因此ibatisxml映射文件应配置在ibatis-sql-map-config_oracle.xml中,如采用其他数据,替换后面的数据库名称即可,文件中配置格式如下引用。

引用

<sqlMapConfig>

    <settings cacheModelsEnabled="true"

              enhancementEnabled="true"

              lazyLoadingEnabled="true"/>

    <sqlMap resource="eoms/sysmodel/log/dao/ibatis/LogMessageDAOiBatis_ora.xml"/> </sqlMapConfig>

 

STRUTS的整合

我们使用STRUTS1.0作为MVC框架。

Ø         下载jar

首先到struts官网http://struts.apache.org/1.x/上下载struts1.x相关jar包。

Ø         配置servlet

        web.xml文件中配置struts所必备的serlvet,在这里使用了天元公共包里的ActionServletExtension类,它继承了ActionServlet,负责处理struts的相关事务。首先需配置config参数,configstruts配置文件的路径,在此处采用了匹配模式,只要匹配 /WEB-INF/conf/struts/struts-config*.xml的文件都可以被解析。设置load-on-startup5表示在web服务启动时,会自动运行ActionServletExtension,执行init方法,初始化参数。Serlvet映射路径配置为*.do,表示所有的struts配置的路径都需要添加后缀do才能进行正常访问,比如logon.do

引用

<servlet>

              <servlet-name>action</servlet-name>

              <servlet-class>eoms.common.extension.ActionServletExtension</servlet-class>

              <init-param>

                     <param-name>config</param-name>

                     <param-value>

                            /WEB-INF/conf/struts/struts-config*.xml

                     </param-value>

              </init-param>

              <init-param>

                     <param-name>debug</param-name>

                     <param-value>2</param-value>

              </init-param>

              <init-param>

                     <param-name>detail</param-name>

                     <param-value>2</param-value>

              </init-param>

              <load-on-startup>5</load-on-startup>

</servlet>

<servlet-mapping>

           <servlet-name>action</servlet-name>

           <url-pattern>*.do</url-pattern>

</servlet-mapping>

 

Ø         配置struts标签

Struts框架自带很多struts自定义标签, 包括struts-beanstruts-htmlstruts-logic等等,在jsp中引入自定义标签使得我们的开发变得更加游刃有余。在使用这些标签之前,需要将标签文件路径配置在web.xml中,方便在JSP中直接引入。

引用

<taglib>

              <taglib-uri>/WEB-INF/getListData.tld</taglib-uri>

              <taglib-location>/WEB-INF/tld/getListData.tld</taglib-location>

</taglib>

 

Ø         配置struts xml文件

Struts xml文件是struts的核心文件之一,主要定义各种formbeanstrutsaction,以及他们之间的关系。

引用

<struts-config>

    <form-beans>

        <form-bean name="replyForm" type="eoms.workshop.msg.ReplyForm" />

</form-beans>

<global-forwards>

<forward name="logon" path="/logon.do" redirect="false"/>

</ global-forwards>

<action-mappings>

<action name="replyForm" type="eoms.workshop.msg.ReplyAction" path="/reply"  

 scope="request">

            <forward name="reply" path="/workshop/msg/msg_reply.jsp"/>

    </action>

</ action-mappings>

</struts-config>     

分享到:
评论

相关推荐

    ssi整合 jar包

    SSI(Server Side Include)是一种在Web服务器端处理页面动态包含的技术。它允许网页开发者在HTML文件中嵌入服务器端的脚本或指令,以便在页面加载时动态地插入数据、执行计算或者引用其他资源。SSI主要应用于静态...

    SSI整合项目 SSI系统绞手架 SSI框架整合

    SSI,全称Server-Side Includes,是一种简单的服务器端脚本语言,主要用于在HTML文档中动态包含其他文件或者执行服务器端的命令。...通过不断地学习和实践,你将能够熟练掌握SSI技术,并构建出高效的Web应用程序。

    velocity+ssi整合

    在Web开发领域,Velocity和SSI(Server Side Includes)都是用于动态网页生成的技术。Velocity是由Apache软件基金会开发的一个Java模板引擎,它允许开发者将HTML页面与Java代码分离,从而实现更清晰的视图逻辑。而...

    ssi整合基本jar

    SSI(Server-Side Include)是一种在Web服务器端执行的简单脚本语言,它允许网页开发者在HTML文件中插入动态内容,如时间戳、文件内容、其他网页等,而无需使用更复杂的服务器端技术如PHP、JSP或ASP。在本案例中,...

    SSI框架整合实战成果(zip)

    **SSI框架整合实战成果(zip)** 本压缩包包含的是一份关于SSI框架(Struts2、Spring、Ibatis)整合的实战项目成果。这三大框架是Java Web开发中常用的技术栈,它们各自承担着不同的职责,共同构建了一个高效、灵活的...

    ssi整合带有实例

    本实例是关于如何整合SSI到你的项目中的教程,它提供了具体的步骤和指导,帮助你快速上手。首先,你需要确保你的Web服务器支持SSI,大多数现代Web服务器如Apache和Nginx都默认支持。如果你使用的是Apache,你可能...

    ssi项目整合

    "SSI项目整合"指的是在Java Web开发中,将Struts2、Spring和iBatis三个框架集成在一起,形成一个高效、灵活的Web应用程序开发模型。这个整合项目提供了一个完整的开发模板,包括数据库设计,适用于初学者进行项目...

    SSI整合案例

    在本案例中,我们探讨的是如何将SSI技术应用于实际项目中,为那些对此技术不太熟悉的开发者提供参考。 SSI主要的功能是允许网页开发者在HTML文档中插入其他文件、执行简单计算或动态显示服务器信息,比如日期、时间...

    SSI框架整合学习

    ### SSI框架整合学习 #### 一、SSI框架概述与整合背景 在现代软件开发过程中,尤其是Web应用领域,为了提高开发效率、增强系统可维护性及灵活性,开发者们往往会采用多种技术框架进行组合开发。其中,“SSI”框架...

    SSI整合jar包

    **SSI整合jar包详解** 在Java Web开发领域,SSI(Struts2、Spring、Mybatis)是一种常见的技术栈,也被称为SSH框架。这三个组件分别负责不同的职责:Struts2是MVC(Model-View-Controller)框架,Spring是全面的...

    ssi整合完整例子

    **SSI整合完整例子** 在Web开发中,Server Side Include(SSI)是一种服务器端的脚本语言,用于在HTML页面中动态插入服务器上的内容,如时间、日志信息、天气预报等。SSI通常与Apache服务器紧密关联,但在现代Web...

    ssi框架整合项目笔记

    ### SSI框架整合项目知识点详解 #### 一、SSI框架整合概述 在当前软件开发领域,集成多种技术栈以构建高效稳定的应用系统是常见的做法。SSI(Spring+SpringMVC+MyBatis)作为Java Web开发的经典组合之一,被广泛...

    ssi2整合步骤

    根据提供的文件信息,我们可以深入解析SSI2(假设是某种特定技术或框架的简称)整合步骤中的关键知识点。这里将从框架搭建、Web配置文件(web.xml)解析、以及Struts配置文件(struts.xml)分析几个方面进行详细介绍。 ...

    简单SSI整合实例

    综上所述,这个压缩包提供的实例可能是一个完整的、以SSI技术为核心的简易人员管理系统开发教程。它涉及了服务器端脚本、数据库设计、XML配置以及前端和后端代码的配合,对于初学者来说,这是一个很好的实践项目,...

    ssi整合jar包

    SSI,全称Server-Side Includes,是Web服务器提供的一种简单动态网页技术。它允许在静态HTML文件中嵌入服务器端的脚本,从而实现部分页面的动态更新,而无需使用更复杂的服务器端语言如PHP、ASP或JSP。在本案例中,...

    ssi 整合 及 jar包

    标题 "SSI 整合及 JAR 包" 暗示了这个话题是关于服务器端包含(Server Side Include,简称 SSI)技术与 Java 应用程序中的 JAR(Java Archive)包整合的过程。SSI 是一种早期的 web 开发技术,允许在静态 HTML 页面...

    ssi框架的整合总结

    ### SSI框架整合详解 #### 引言 在IT领域,尤其是软件开发中,MVC...综上所述,SSI框架的整合不仅是技术层面的融合,更是软件工程思想的体现,它强调了模块化、解耦和代码复用的重要性,为现代软件开发树立了典范。

    SSI整合示例-权限管理

    在本示例中,“SSI整合示例-权限管理”是一个利用SSI技术实现的权限管理系统,它涉及到如何将SSI与应用程序逻辑相结合,以实现对用户访问权限的有效控制。 在权限管理领域,通常会涉及以下几个关键知识点: 1. **...

Global site tag (gtag.js) - Google Analytics