spring+struts+ibatis
来源:互联网 发布:sql read committed 编辑:程序博客网 时间:2024/06/05 11:09
原来的系统里面只采用了struts的框架,并且没有使用struts的校验功能,为方便开发,修改框架为spring+struts+ibatis组合
1、添加需要的jar文件
2、添加spring配置文件applicationContext.xml,内容如下
<?xml version="1.0" encoding="gb2312"?>
<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/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<bean id="transactionManager" <property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true"/>
<tx:method name="query*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="ibatisBoOperation" expression="execution(* com.test.IbatisBaseBO.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="ibatisBoOperation"/>
</aop:config>
<bean id="dataSource" <property name="jndiName">
<value><--JNDI数据源名称--></value>
</property>
</bean>
<bean id="sqlMapClient" <property name="configLocation" value="WEB-INF/sqlmap-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="commonDao" <property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<bean id="exampleBO" <property name="dao" ref="commonDao"/>
<property name="extend" value="9014"/>
</bean>
<bean name="/Example" <property name="bo" ref="exampleBO"/>
</bean>
</beans>
3、添加ibatis的配置文件sqlmap-config.xml,因为整合在spring中,因此内容很简单
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="com/test/DemoMap.xml"/>
</sqlMapConfig>
4、添加校验资源文件MessageResources.properties
5、修改struts-config.xml文件,增加spring的插件
<message-resources parameter="resource.MessageResources" />
<message-resources key="test" parameter="com.test.TestMessage"></message-resources>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/resource/applicationContext.xml"/>
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/org/apache/struts/validator/validator-rules.xml,
/com/test/TestValidation.xml"/>
</plug-in>
增加这些配置后,将原来的type改为使用spring的代理
<action path="/TestInit" forward="test/TestInit.jsp"></action>
<action path="/Example" type="org.springframework.web.struts.DelegatingActionProxy"
name="testForm" scope="request" validate="true" input="test/Example.jsp">
<forward name="cancel" path="test/DemoTest.jsp"/>
</action>
6、修改web.xml文件,增加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>
7、增加基础类
IbatisBaseDao用来完成基本操作
public abstract class IbatisBaseDao extends SqlMapClientDaoSupport{
public abstract void insert(String stat,Object obj) throws DataAccessException;
public abstract void delete(String stat,Object obj) throws DataAccessException;
public abstract void update(String stat,Object obj) throws DataAccessException;
public abstract List queryForList(String stat,Object obj) throws DataAccessException;
public abstract Object queryForObject(String stat,Object obj) throws DataAccessException;
}
IbatisBaseBo完成业务逻辑处理
public abstract class IbatisBaseBO {
protected IbatisBaseDao dao;
public void setDao(IbatisBaseDao dao) {
this.dao = dao;
}
public abstract void update(Object obj) throws Exception;
public abstract void insert(Object obj) throws Exception;
public abstract Object queryForObject(Object obj) throws Exception;
public abstract List queryForList(Object obj) throws Exception;
public abstract void delete(Object obj) throws Exception;
public abstract void transOperation(Object[] obj)throws Exception;//多对象事务处理
}
IbatisBaseAction完成页面请求转发,继承原有的基础类
public abstract class IbatisBaseAction extends BaseAction {
protected IbatisBaseBO bo;
public abstract ActionForward process(ActionMapping mapping, BaseForm form, HttpServletRequest request, HttpServletResponse response) throws Exception;
public void setBo(IbatisBaseBO bo){
this.bo = bo;
}
public IbatisBaseBO getBo(){
return bo;
}
}
完成修改后,在开发新功能的过程中,需要完成如下内容
1、XxxMap.xml,完成ibatis内容的编写,增删改查等
2、增加资源文件,提供对页面出错信息以及显示内容的国际化处理
3、增加校验文件,提供对输入的检查,这个不是必需的,视情况而定
5、完成struts-config.xml和applicationContext.xml的配置
6、继承新增的基础类,完成业务处理程序
- velocity+struts+spring+ibatis
- spring+struts+ibatis
- spring ibatis struts
- Struts+Spring+Ibatis
- Ext.js +Struts+Spring+Ibatis
- ibatis+spring+struts 环境配置
- ibatis+spring+struts spring 外部注入 SqlMapClientTemplate
- struts+spring+ibatis轻量级J2EE开发
- struts+spring+ibatis+velocity整合配置
- struts+spring+ibatis示例(附:源代码)
- struts+spring+ibatis轻量级J2EE开发
- Struts + Spring +ibatis 整合开发步骤:
- Struts + Spring +ibatis 整合开发步骤
- Struts + Spring +ibatis 整合开发步骤
- Struts + Spring +ibatis 整合开发步骤
- 基于struts+spring+ibatis的 J2EE 开发
- 理解jstl.struts.spring.ibatis/hibernate/jdbc
- spring-ibatis-Struts-Hibernate 架构图
- 我的 C++ 学习历程 之三 第一个MFC应用程序(2)
- js 获取显示 当前日期 和 星期
- 关于自己
- builder模式
- 为什么调用glPushMatrix()和glPopMatrix() 转
- spring+struts+ibatis
- sql server查询一个数据库中哪个表没有数据、表中数据大小
- SQL Server 2008新特性——SSMS增强
- ganggang
- 复制数据库 oracle
- Web.config配置详解(转)
- 将Gsensor lis301 driver 升级到 lis331 driver 过程总结,以及android中Gsensor相关流程
- 需要在函数中传递的变量
- 关闭mysql的提示音