Strust2+Spring+iBatis20170413

    xiaoxiao2021-04-11  40

    一、 各自的职责:  

     Struts2:负责流程控制,主要针对的是从JSP页面到action类这一块的步骤。

     Spring:负责各个类,对象的创建,包括actionservice,dao,数据连接对象,Ibatis框架的核心对象sqlMapClientSpring自身的事务处理扩展对象transactionManager

     Ibatis:负责对JDBC的封装,简化访问数据的程序。

    二,环境的搭建:

                       1,需要考入的jar包:

    commons-fileupload-1.2.1.jar(Struts2:文件上传)

    commons-io-1.3.2.jar(Struts2:文件上传)

    freemarker-2.3.15.jar(Struts2:视图展现技术)

    ognl-2.7.3.jar(Struts2:对象图形导航语言,用于做数据操作)

    struts2-core-2.1.8.1.jar(Struts2:核心jar包)

    xwork-core-2.1.6.jar(Struts2:webwork框架的核心jar包)

    commons-logging.jar(Spring:日志输出操作,实现日志输出的转换)

    junit-3.8.2.jar(非必须:单元测试jar包)

    log4j-1.2.15.jar(非必须:日志输出jar包)

    spring.jar(Spring:核心jar包)

    struts2-spring-plugin-2.1.8.1.jar(Struts2Spring的合并jar包)

    c3p0-0.9.1.2.jar(做数据源操作的jar包)

    ibatis-2.3.4.726.jar(Ibatis:核心jar包)

    ojdbc14.jar(oracle数据库的连接jar包)

    aspectjrt.jar(Spring:支持AOP功能的jar包)

    aspectjweaver.jar(Spring:支持AOP功能的jar包)

    cglib-nodep-2.1_3.jar(Spring:实现基于继承的动态代理)

     

                      2,拷贝进去的配置文件:

                           Struts2:struts.xml

                          Spring:applicationContext.xml

         Ibatis:SqlMapConfig.xml  SqlMap.xml

         日志输出的属性文件:log4j.properties

          配置数据库连接信息:db.properties

    三,各个配置文件的编写:

                          

      1struts.xml中,主要用来配置action类,

    [html]   view plain  copy  print ? <span style="font-size:18px;"><package name="system" namespace="/system" extends="struts-default">                <action name="insertUser" class="userAction" method="insert">                       <result name="success" type="redirect">/userlist.jsp</result>                       <result name="error" type="redirect">/error.jsp</result>                   </action>               </package>   </span>  

     2applicationContext.xml:

    <span style="font-size:18px;">          <?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: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="loginAction" class="com.ljh.action.LoginAction" scope="prototype">                       <property name="userService" ref="userService"></property>                   </bean>                                       <!-- action层类的设置,关联service -->                   <bean id="userAction" class="com.ljh.action.UserAction" scope="prototype">                       <property name="userService" ref="userService"></property>                   </bean>                   <!-- service层类的设置,关联dao -->                   <bean id="userService" class="com.ljh.service.UserService" >                       <property name="userDao" ref="userDao"></property>                   </bean>                   <!-- dao层类的设置 ,关联sqlMapClient-->                   <bean id="userDao" class="com.ljh.dao.UserDao">                       <property name="sqlMapClient" ref="sqlMapClient"></property>                   </bean>                                       <!-- 表示把属性资源文件的信息加载到Spring环境中进行利用 -->                   <bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">                       <property name="locations">                           <list>                               <value>classpath:db.properties</value>                           </list>                       </property>                   </bean>                                       <!-- 配置C3P0数据源连接池,通过读取属性文件 -->                   <bean id="c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource">                       <property name="user" value="${username}"></property>                       <property name="password" value="${password}"></property>                       <property name="jdbcUrl" value="${url}"></property>                       <property name="driverClass" value="${driverClass}"></property>                                   </bean>                                   <!-- IBatis核心对象sqlMapClient的声明 ,通过工厂SqlMapClientFactoryBean和IBatis核心配置文件-->                   <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">                       <property name="dataSource" ref="c3p0"></property>                       <property name="configLocations">                           <list>                               <value>classpath:SqlMapConfig.xml</value>                           </list>                       </property>                   </bean>                                       <!-- 配置功能扩展对象 - 事务管理,通过c3p0 -->                   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">                       <property name="dataSource" ref="c3p0"></property>                   </bean>                                       <!-- 声明事务管理AOP功能 -->                   <aop:config>                       <aop:advisor advice-ref="transactionAdvice" pointcut="execution(* com.ljh.service.*.*(..))"/>                           </aop:config>                                               <!--事务的配置-->                   <tx:advice id="transactionAdvice" transaction-manager="transactionManager">                       <tx:attributes>                           <tx:method name="save*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="java.lang.Exception"/>                           <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="java.lang.Exception"/>                           <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="java.lang.Exception"/>                           <tx:method name="select*" read-only="true"/>                       </tx:attributes>                   </tx:advice>                               </beans>   </span>  

     3SqlMapConfig.xml

    <span style="font-size:18px;">          <sqlMapConfig>                   <!-- 只需配置映射文件即可 -->                   <sqlMap resource="com/ljh/bean/User.xml" />      </sqlMapConfig></span>  

    4,User.xml(SqlMap.xml)

    [html]   view plain  copy  print ? <span style="font-size:18px;">          <sqlMap namespace="empSQL">                       <insert id="insertUserSQL">                       insert into t_user(usercode,userpswd,username,orgtype,regdate) values(#usercode#,#userpswd#,#username#,#orgtype#,#regdate#)                   </insert>      </sqlMap></span>  

    5,属性文件db.properties:

    <span style="font-size:18px;">              url=jdbc:oracle:thin:@127.0.0.1:1521:ljh                   driverClass=oracle.jdbc.driver.OracleDriver                   username=scott      password=ti</span> 

    dynamic可以去除第一个prepend="and"中的字符(这里为and)

    
    转载请注明原文地址: https://ju.6miu.com/read-666593.html

    最新回复(0)