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

我不熟悉spring+struts+ibatis配置文件

阅读更多
对ssi不熟悉导致经常纠结于各种配置文件,对其如何整合也似懂非懂。干脆来写写罢(主要写我不熟悉的,路过的同志可能不适合阅读此文)

一、web.xml
1、contextConfigLocation:Spring容器启动时需要加载Spring的配置文件,默认是/WEB-INF目录下的applicationContext.xml文件。当然也可以放在classpath下,可以包括多个spring配置文件----这就得依靠contextConfigLocation。
<context-param>  
    	<param-name>contextConfigLocation</param-name>  
    	<param-value>/WEB-INF/applicationContext.xml</param-value>  
    </context-param> 

(开头的斜杠可有可无,可以是/WEB-INF/xxx.xml,也可以是WEB-INF/xxx.xml)
如果web.xml中没有配置context-param,spring的配置就像如上这段代码示例一下,自动去WEB-INF目录下寻找applicationContext.xml。此时,如果你修改applicationContext.xml的名称,或者移除它,再启动服务器,你会得到如下异常信息:
nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]

这证实了其默认配置。默认配置情况下spring只会去WEB-INF目录下寻找配置文件,而不会去classpath下寻找。
如果我们不想将配置文件放在WEB-INF目录下呢?开发中经常在src下面创建一个config目录,用于存放配置文件。此时,对应的param-value改为:classpath:config/applicationContext.xml。
一定要加上classpath,这告诉spring去classes目录下的config目录下面寻找配置文件。如果不加呢?则去war包的根目录下面寻找配置文件(此处要多多熟悉war包结构)。

怎样加载多个spring配置文件呢?很简单,param-value对应多个值,并且以逗号、空格、分号分隔配置文件字符串。例如:
<context-param>  
    	<param-name>contextConfigLocation</param-name>  
    	<param-value>classpath:applicationContext.xml,/WEB-INF/a.xml;classpath:c.xml</param-value>  
    </context-param> 

这样就加载了三个spring的配置文件。
也可以使用通配符,例如:加载classpath下config目录中所有applicationContext-开头的xml文件:
<context-param>  
    	<param-name>contextConfigLocation</param-name>  
    	<param-value>classpath:config/applicationContext-*.xml</param-value>  
    </context-param> 


2.如何启动Spring容器。
两种方法,一种以listener启动,一种以load-on-startup Servlet。先看第一种:
<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

第二种:
<servlet>
 <servlet-name>context</servlet-name>
 <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
</servlet>

二选一,区别不大,都依赖于ContextLoader。

3.整合struts
也不难,通过配置servlet进行:
<filter>
		<filter-name>struts</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>


二。spring配置文件
可以在spring的配置文件中导入其他的spring配置文件:
<import resource="applicationContext-2.xml"/>

这里的import是基于相对路径。

加载properties文件:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>WEB-INF/mail.properties</value>
				<value>WEB-INF/jdbc.properties</value>
			</list>
		</property>
	</bean>

通过属性占位符加载了两个properties文件,在随后的配置文件中即可使用${key}的方式使用properties中的value值。

三。spring整合ibatis配置文件
spring是通过实例化SqlMapClient对象时通过指定其configLocation指定ibatis的配置文件的。例如:
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
	</bean>

应用程序会去WEB-INF目录下寻找sql-map-config.xml文件。

四.sql-map-config.xml
ibatis本身的配置不难:
<settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
		maxSessions="10" maxTransactions="5" useStatementNamespaces="true" />

引入properties文件:
<properties resource="database.properties"/>

可以导入其他的ibatis映射文件:
<sqlMap resource="com/ailk/liaofeng/user/dao/ibatis/SystemUser.xml" />

ibatis有一套自己的配置我就不讲了,这里主要讲如何跟spring整合,所以,dataSource,transactionManager等对象都会使用spring进行配置。(ibatis配置文件请参考http://imticg.iteye.com/blog/216080)

四.struts.xml
<constant name="struts.objectFactory" value="spring"/>
<include file="newstruts.xml"/>

第一句,constant配置struts的常量(也可在struts.properties)文件中配置),将struts的对象工厂托由spring管理。
第二句,导入其他的struts配置文件。
其他详细配置参考:http://hanxin0311.iteye.com/blog/206675
分享到:
评论
2 楼 ps329795485 2012-01-04  
谢谢,在这里找到了我想要的答案。
刚开始我不知道是如何加载applicationContext.xml文件的,我什么都没配置,原来是默认在WEB-INF下加载的。
1 楼 lee_json 2011-05-04  
很有帮助 我可以转走吗?谢谢

相关推荐

    spring+struts2+ibatis整合的jar包

    为了成功地使用这个jar包,开发者需要确保项目的类路径包含了这些库,并且正确配置了Spring、Struts2和iBatis的配置文件。 总的来说,Spring、Struts2和iBatis的整合为Java Web开发提供了一个强大、灵活的解决方案...

    Spring+Struts2+iBatis简要说明

    Spring+Struts2+iBatis是一个经典的Java轻量级开发框架组合,主要用于构建Web应用程序。这三个框架协同工作,提供了一种高效、灵活的解决方案,帮助开发者实现MVC(Model-View-Controller)架构。 首先,Spring框架...

    Spring+Struts+ibatis讲解

    Spring框架的核心配置文件,如`DefaultContext.xml`,用于定义Bean的声明、依赖注入以及事务管理等。例如,这里可能会配置Service和DAO的Bean,以及相关的数据源、事务管理器等。 四、Ibatis配置: 1. `ibatis-...

    Spring+Struts2+Ibatis

    Spring、Struts2和iBatis是Java Web...此外,对于SpringIbatisStruts这个压缩包文件,可能包含了整合这三个框架的示例代码、配置文件以及相关的教程文档,可以帮助学习者快速理解和实践这种经典的Java Web开发模式。

    spring+struts2+ibatis简单例子

    1. **配置Spring**:设置Spring的配置文件,定义Bean的实例化规则,包括Struts2的Action类、Service层接口及其实现、iBatis的SqlSessionFactory和Mapper接口。 2. **配置Struts2**:配置struts.xml文件,定义Action...

    spring3+struts2+ibatis

    开发者可以从中学习到如何配置Spring的ApplicationContext、Struts2的struts.xml以及Ibatis的mybatis-config.xml,理解它们之间的交互机制。此外,通过分析Action、Service、DAO层的实现,可以进一步掌握各框架在...

    spring+struts+ibatis

    - src/main/resources:存放配置文件,如Spring的ApplicationContext.xml、Struts2的struts.xml以及iBatis的SqlMapConfig.xml。 - webapp:Web应用的根目录,包含WEB-INF目录下的web.xml(Web应用部署描述符)、jsp...

    flex+spring+struts2+ibatis 整合的eclipse工程

    flex+spring+struts2+ibatis 整合的eclipse工程,可以导入eclipse环境下直接使用,因为加入开发的jar大于了上传的最大限制,只能把jar另外打包上传,下载可以从我上传资源的lib1,lib2下载,这个工程的搭建花费了我两...

    Maven+spring+ struts2+ Ibatis+mysql整合增删改查

    在Spring的配置文件中,设置数据源、事务管理器,并配置Ibatis的相关bean。Struts2的配置文件struts.xml中,定义Action类和结果映射。最后,Ibatis的配置文件sqlMapConfig.xml中,包含SQL映射信息。 总的来说,这个...

    Spring+Struts2+Ibatis整合例子

    2. **配置Struts2**:接着,设置Struts2的配置文件,定义Action类、结果类型和拦截器,同时配置Spring插件以利用Spring管理Action实例。 3. **配置iBatis**:在iBatis的配置文件中,定义数据源、SqlSessionFactory...

    struts2+spring+Ibatis框架包

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...

    SSI Spring+struts1+ibatis案例

    1. **配置文件**:如`spring-context.xml`,用于定义Spring容器中的bean,包括Struts1的Action类、iBatis的SqlMapConfig.xml等。 2. **Struts1配置**:`struts-config.xml`文件,定义Action和ActionForm,以及请求的...

    Spring+Struts2+IBatis 项目整合(四)

    在本项目整合中,我们将探讨如何将三个著名的技术框架——Spring、Struts2和IBatis——集成在一起,创建一个高效且灵活的企业级Web应用程序。这个整合通常被称为SSH(Spring、Struts2、Hibernate或iBatis)框架栈,...

    Spring+Struts2+iBatis

    在`applicationContext.xml`配置文件中,Spring配置了整体环境,包括与iBatis的集成、事务管理以及连接池设置。Spring能够管理所有对象的生命周期,使得组件之间的耦合度降低,增强了系统的可维护性和可扩展性。 **...

    spring+struts2+ibatis.Jar

    "SSI2配置文件"可能是指Spring、Struts2和iBatis的配置文件,包括但不限于以下几种: 1. Spring的配置文件(如`applicationContext.xml`):定义bean的实例化、依赖关系以及事务管理等。 2. Struts2的配置文件(如`...

    spring+struts2+ibatis

    在最小配置中,我们需要创建一个Spring配置文件(如`beans.xml`),定义Bean的实例化和依赖注入。例如,我们可以定义一个Struts2的Action类和iBatis的SqlSessionFactory Bean: ```xml &lt;bean id="strutsAction" ...

    spring+struts+ibatis框架搭建

    Ibatis允许开发者在XML配置文件或注解中编写SQL,通过映射接口方法,实现了数据访问与业务逻辑的解耦。在Spring+Struts+Ibatis的组合中,Ibatis作为数据访问层,处理与数据库的交互,Spring通过 ...

    Spring+struts2+ibatis整合demo

    3. iBatis配置文件(如:sqlMapConfig.xml):配置数据库连接、SqlSessionFactory等。 4. Action类:Struts2的动作类,通常包含业务逻辑和数据处理方法。 5. Mapper接口和XML映射文件:定义SQL语句和结果映射。 6. ...

    spring+struts2+ibatis SSI框架搭建

    3. iBatis配置文件(如`mybatis-config.xml`):包含数据源、事务管理器等全局配置。 4. SQL映射文件(如`.xml`文件):定义SQL语句和结果映射。 5. Java源代码:包括Action类、Service层接口及其实现、DAO接口及其...

Global site tag (gtag.js) - Google Analytics