- 浏览: 15814 次
- 性别:
- 来自: 贵阳
文章分类
最新评论
关键字: struts2, ibatis, spring
首先配置Struts
web.xml配置如下:
Xml代码
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:com/configure/applicationContext.xml classpath:com/configure/applicationContext*.xml </param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:com/configure/applicationContext.xml classpath:com/configure/applicationContext*.xml </param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
完成以上配置后,我们可以先部暑项目启动服务器,如果启动正常没有报错,说明struts与spring的启动是正常的,接下来我们再在项目的根目录下(src目录下面)添加sturts.xm与log4j.properties具体配置如下:
struts.xml的内容:(如没有自定义拦截器,下面的拦截器需注悉掉)
Xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="struts1" extends="struts-default">
<interceptors>
<!-- 定义登陆验证拦截器 -->
<interceptor name="loginVlidate" class="com.interceptor.UserLoginVlidate"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="checkInterceptor">
<!-- 包含登陆证和默认拦截器 -->
<interceptor-ref name="loginVlidate"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 定义全局拦截器 -->
<default-interceptor-ref name="checkInterceptor"></default-interceptor-ref>
<!-- 定义一个全局的返回结果 -->
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<action name="registerAction" class="RegisterAction">
<result>index.jsp</result>
<result name="error">error.jsp</result>
</action>
<action name="loginAction" class="LoginAction">
<result>main.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="struts1" extends="struts-default">
<interceptors>
<!-- 定义登陆验证拦截器 -->
<interceptor name="loginVlidate" class="com.interceptor.UserLoginVlidate"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="checkInterceptor">
<!-- 包含登陆证和默认拦截器 -->
<interceptor-ref name="loginVlidate"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 定义全局拦截器 -->
<default-interceptor-ref name="checkInterceptor"></default-interceptor-ref>
<!-- 定义一个全局的返回结果 -->
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<action name="registerAction" class="RegisterAction">
<result>index.jsp</result>
<result name="error">error.jsp</result>
</action>
<action name="loginAction" class="LoginAction">
<result>main.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts>
log4j.properties内容:
Xml代码
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
完成以上配置后,我们可以做一些不涉及持久层的action测试,如果测试没问题说明struts已经配置成功,接下来就是配置ibatis,具体配轩如下:
database.properties内容:
Java代码
####################################
# Database Connectivity Properties
####################################
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.1.38:3306/ssh
username=netjava
password=netjava
####################################
# Database Connectivity Properties
####################################
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.1.38:3306/ssh
username=netjava
password=netjava
sql-map-config.xml内容:
Xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="com/persistence/sqlmapdao/sql/userInfo.xml"/>
<sqlMap resource="com/persistence/sqlmapdao/sql/replyInfo.xml"/>
<sqlMap resource="com/persistence/sqlmapdao/sql/articleInfo.xml"/>
</sqlMapConfig>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="com/persistence/sqlmapdao/sql/userInfo.xml"/>
<sqlMap resource="com/persistence/sqlmapdao/sql/replyInfo.xml"/>
<sqlMap resource="com/persistence/sqlmapdao/sql/articleInfo.xml"/>
</sqlMapConfig>
至此,struts与ibatis的配置都已完成,接下来我们要做的就是如何用spring这个粘合济将它们整合起来,下面是spring具体配置:
首先,配置applicationContext.xml文件:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the DAOs in
- dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:com/configure/database.properties</value>
</list>
</property>
</bean>
<!-- ========================= GENERAL DEFINITIONS ========================= -->
<!-- Configurer that replaces ${...} placeholders with values from properties files -->
<!-- (in this case, mail and JDBC related properties) -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:com/configure/sql-map-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<!-- 下面定义事物的传播属性 -->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNameAutoProxyCreator的bean后处理器 -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>UserInfoService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the DAOs in
- dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:com/configure/database.properties</value>
</list>
</property>
</bean>
<!-- ========================= GENERAL DEFINITIONS ========================= -->
<!-- Configurer that replaces ${...} placeholders with values from properties files -->
<!-- (in this case, mail and JDBC related properties) -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:com/configure/sql-map-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<!-- 下面定义事物的传播属性 -->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNameAutoProxyCreator的bean后处理器 -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>UserInfoService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
</beans>
接下来再配置applicationContext-dao.xml文件:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="UserInfoDao" class="com.persistence.sqlmapdao.UserInfoSqlMapDao">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="UserInfoDao" class="com.persistence.sqlmapdao.UserInfoSqlMapDao">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
</beans>
applicationContext-service.xml文件:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="UserInfoService" class="com.service.impl.UserInfoServiceImpl">
<property name="userDao" ref="UserInfoDao"></property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="UserInfoService" class="com.service.impl.UserInfoServiceImpl">
<property name="userDao" ref="UserInfoDao"></property>
</bean>
</beans>
applicationContext-struts.xml文件:
Java代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="RegisterAction" class="com.action.RegisterAction">
<property name="userService" ref="UserInfoService"></property>
</bean>
<bean id="LoginAction" class="com.action.LoginAction">
<property name="userService" ref="UserInfoService"></property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="RegisterAction" class="com.action.RegisterAction">
<property name="userService" ref="UserInfoService"></property>
</bean>
<bean id="LoginAction" class="com.action.LoginAction">
<property name="userService" ref="UserInfoService"></property>
</bean>
</beans>
到此,关于struts+ibatis+spring整合的配置都已完成。
首先配置Struts
web.xml配置如下:
Xml代码
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:com/configure/applicationContext.xml classpath:com/configure/applicationContext*.xml </param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:com/configure/applicationContext.xml classpath:com/configure/applicationContext*.xml </param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
完成以上配置后,我们可以先部暑项目启动服务器,如果启动正常没有报错,说明struts与spring的启动是正常的,接下来我们再在项目的根目录下(src目录下面)添加sturts.xm与log4j.properties具体配置如下:
struts.xml的内容:(如没有自定义拦截器,下面的拦截器需注悉掉)
Xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="struts1" extends="struts-default">
<interceptors>
<!-- 定义登陆验证拦截器 -->
<interceptor name="loginVlidate" class="com.interceptor.UserLoginVlidate"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="checkInterceptor">
<!-- 包含登陆证和默认拦截器 -->
<interceptor-ref name="loginVlidate"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 定义全局拦截器 -->
<default-interceptor-ref name="checkInterceptor"></default-interceptor-ref>
<!-- 定义一个全局的返回结果 -->
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<action name="registerAction" class="RegisterAction">
<result>index.jsp</result>
<result name="error">error.jsp</result>
</action>
<action name="loginAction" class="LoginAction">
<result>main.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="struts1" extends="struts-default">
<interceptors>
<!-- 定义登陆验证拦截器 -->
<interceptor name="loginVlidate" class="com.interceptor.UserLoginVlidate"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="checkInterceptor">
<!-- 包含登陆证和默认拦截器 -->
<interceptor-ref name="loginVlidate"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 定义全局拦截器 -->
<default-interceptor-ref name="checkInterceptor"></default-interceptor-ref>
<!-- 定义一个全局的返回结果 -->
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<action name="registerAction" class="RegisterAction">
<result>index.jsp</result>
<result name="error">error.jsp</result>
</action>
<action name="loginAction" class="LoginAction">
<result>main.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts>
log4j.properties内容:
Xml代码
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
完成以上配置后,我们可以做一些不涉及持久层的action测试,如果测试没问题说明struts已经配置成功,接下来就是配置ibatis,具体配轩如下:
database.properties内容:
Java代码
####################################
# Database Connectivity Properties
####################################
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.1.38:3306/ssh
username=netjava
password=netjava
####################################
# Database Connectivity Properties
####################################
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.1.38:3306/ssh
username=netjava
password=netjava
sql-map-config.xml内容:
Xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="com/persistence/sqlmapdao/sql/userInfo.xml"/>
<sqlMap resource="com/persistence/sqlmapdao/sql/replyInfo.xml"/>
<sqlMap resource="com/persistence/sqlmapdao/sql/articleInfo.xml"/>
</sqlMapConfig>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="com/persistence/sqlmapdao/sql/userInfo.xml"/>
<sqlMap resource="com/persistence/sqlmapdao/sql/replyInfo.xml"/>
<sqlMap resource="com/persistence/sqlmapdao/sql/articleInfo.xml"/>
</sqlMapConfig>
至此,struts与ibatis的配置都已完成,接下来我们要做的就是如何用spring这个粘合济将它们整合起来,下面是spring具体配置:
首先,配置applicationContext.xml文件:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the DAOs in
- dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:com/configure/database.properties</value>
</list>
</property>
</bean>
<!-- ========================= GENERAL DEFINITIONS ========================= -->
<!-- Configurer that replaces ${...} placeholders with values from properties files -->
<!-- (in this case, mail and JDBC related properties) -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:com/configure/sql-map-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<!-- 下面定义事物的传播属性 -->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNameAutoProxyCreator的bean后处理器 -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>UserInfoService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the DAOs in
- dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:com/configure/database.properties</value>
</list>
</property>
</bean>
<!-- ========================= GENERAL DEFINITIONS ========================= -->
<!-- Configurer that replaces ${...} placeholders with values from properties files -->
<!-- (in this case, mail and JDBC related properties) -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:com/configure/sql-map-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<!-- 下面定义事物的传播属性 -->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNameAutoProxyCreator的bean后处理器 -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>UserInfoService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
</beans>
接下来再配置applicationContext-dao.xml文件:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="UserInfoDao" class="com.persistence.sqlmapdao.UserInfoSqlMapDao">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="UserInfoDao" class="com.persistence.sqlmapdao.UserInfoSqlMapDao">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
</beans>
applicationContext-service.xml文件:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="UserInfoService" class="com.service.impl.UserInfoServiceImpl">
<property name="userDao" ref="UserInfoDao"></property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="UserInfoService" class="com.service.impl.UserInfoServiceImpl">
<property name="userDao" ref="UserInfoDao"></property>
</bean>
</beans>
applicationContext-struts.xml文件:
Java代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="RegisterAction" class="com.action.RegisterAction">
<property name="userService" ref="UserInfoService"></property>
</bean>
<bean id="LoginAction" class="com.action.LoginAction">
<property name="userService" ref="UserInfoService"></property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="RegisterAction" class="com.action.RegisterAction">
<property name="userService" ref="UserInfoService"></property>
</bean>
<bean id="LoginAction" class="com.action.LoginAction">
<property name="userService" ref="UserInfoService"></property>
</bean>
</beans>
到此,关于struts+ibatis+spring整合的配置都已完成。
相关推荐
Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3 SSH
Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3内个框架的集成
struts2.1.6+Spring2.0.8+Ibatis2.3.4工程 开发工具:eclipse3.3+myeclipse6.5 应用技术:Struts2,Spring,Ibatis 数据库:oracle 测试JDK:JDK1.6 测试服务器:Tomcat6.0 非常完整的工程,部署到Tomcat上就可以使用...
### Struts+Spring+Ibatis整合框架搭建知识点详解 #### 一、框架介绍与整合意义 **Struts**是一款开源的MVC框架,主要用于构建基于Java的Web应用程序。它简化了开发过程,使得开发者能够更加关注业务逻辑而非基础...
这个项目集成了Spring 2.5.5、Struts 2.1.6、iBatis 2.3.4以及MySQL 5.1数据库,使用IntelliJ IDEA 9作为开发环境。下面将详细介绍这些技术和它们的集成方式。 **Spring框架**: Spring是一个开源的Java平台,主要...
Struts2.1.6、Spring2.5.6 和 iBATIS2.3.4 是经典的Java Web开发框架组合,它们在企业级应用中有着广泛的应用。搭建这样一个框架可以帮助开发者更好地理解和掌握这些技术,同时提高开发效率。下面将详细阐述这三个...
4. **源码分析**:在博客链接中,作者可能会详细解释如何配置Struts2和iBatis的XML配置文件,如何定义Action类,如何编写SQL映射文件,以及如何在Action中调用iBatis的SqlSession执行SQL语句。此外,还会涉及到如何...
2. **环境搭建**: 笔者基于SSI框架(Struts2.1.6 + Spring3.0 + iBatis-2.3.4.726)搭建了学习环境,并按照官方示例进行了环境的配置与测试。 #### 三、配置JMesa环境 1. **文件结构**: - 在`webRoot`目录下创建...
标题中的"框架jar包大全(SSH)"指的是三个流行的Java Web开发框架:Struts2、Spring和Hibernate的集合,这些框架的jar包集合通常被称为SSH整合。这个描述表明提供了一个包含所有SSH框架所需的jar包的压缩文件,使得...
首先,`struts2.1.6`是一个Struts 2框架的版本。Struts 2是基于MVC(Model-View-Controller)设计模式的开源Web应用框架,它整合了WebWork与Struts 1的优点,提供了一种强大的、可扩展的和易于使用的开发框架。...
5. **struts2-core-2.1.6.jar**:Struts2的核心库,负责处理HTTP请求,管理动作映射,以及执行视图渲染。Struts2是一个流行的MVC框架,它极大地简化了Java Web应用的开发。 6. **mysql-connector-java-5.1.0.5.jar*...