Valid XHTML 1.0 Transitional集成演练路线图 (P15)

Page: [index.html] (v2017-03-01_21-00)

  1. 项目基础:……
  2. Servlet :……
  3. Spring Web MVC :
    1. 基本 Web 应用:……
    2. CRUD :
      1. Spring Web MVC + DataSource + 基本 JDBC :……
      2. Spring Web MVC + DataSource + Spring JDBC Template :……
      3. Spring Web MVC + DataSource + MyBatis :
        1. 方式 - 人工编写 DAO 实现类:……
        2. 方式 - 自动代理 DAO 实现类:
          1. 样例 - 用户管理:……
          2. 样例 - 物件管理:
            • 样例编写:
              1. 实体类:
                沿用既有的实体类 tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.entity.Item
              2. DAO 层:
                1. 映射器:
                  1. 编写映射器接口 tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.dao.I_ItemDAO
                    ……
                    @Repository("crud.mybatis.auto_dao.itemDAO")
                    public interface I_ItemDAO extends
                    		tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.dao.I_ItemDAO
                    {
                    
                    	/**
                    	 * ……
                    	 */
                    	List<Item> listByRange(@Param("start_row_index") int intStartRowIdx,
                    			@Param("select_row_count") int intSelectRowCount)
                    			throws SQLException;
                    
                    }
                    

                  2. 编写 MyBatis 映射文件 src/main/resources/tfw/integration_demo/_04_spring_web_mvc/_02_crud/_03_mybatis_crud/_02_auto_dao_way/dao/impl/oracle/Item.mybatis_mapping.xml
                    <?xml version="1.0" encoding="UTF-8" ?>
                    <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
                    		"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
                    <mapper namespace="tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.dao.I_ItemDAO">
                    	……
                    </mapper>
                    

                  3. 修改 MyBatis 主配置文件 src/main/resources/tfw/integration_demo/_04_spring_web_mvc/_02_crud/_03_mybatis_crud/mybatis-config.xml ,在“mappers”节点下添加此映射文件:
                    <?xml version="1.0" encoding="UTF-8" ?>
                    <!DOCTYPE ……>
                    <configuration>
                    	<!-- Connection and transaction parameters: -->
                    	<environments ……>
                    		……
                    	</environments>
                    
                    	<!-- Mappers: -->
                    	<mappers>
                    		<!--
                    		<mapper resource=".../.../XXXMapping.xml"/>
                    		<mapper resource=".../.../YYYMapping.xml"/>
                    		-->
                    		……
                    		<mapper resource="tfw/integration_demo/_04_spring_web_mvc/_02_crud/_03_mybatis_crud/_02_auto_dao_way/dao/impl/oracle/User.mybatis_mapping.xml"/>
                    		<mapper resource="tfw/integration_demo/_04_spring_web_mvc/_02_crud/_03_mybatis_crud/_02_auto_dao_way/dao/impl/oracle/Item.mybatis_mapping.xml"/>
                    	</mappers>
                    </configuration>
                    

                  4. 编写测试用例公共基类 tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.A_ItemMgrTestCaseBase
                    改良测试用例 tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.ItemMgrTestCase
                    编写测试用例 tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.item_mgr_testcase._01_MyBatisDAO ,测试 DAO 的生成过程及各种功能。
                2. Spring-MyBatis 集成组件介入:
                  1. 检查 / 修改 ApplicationContext 分项配置文件 src/main/resources/tfw/integration_demo/_04_spring_web_mvc/sub_files/04_mybatis_crud.xml ,确认:
                    1. 注册了正确的 SqlSessionFactory 对象,并提供了 MyBatis 映射文件路径
                    2. 注册了“映射配置扫描器”对象,并注入了正确的 SqlSessionFactory 对象包扫描范围
                    <?xml version="1.0" encoding="UTF-8"?>
                    <beans ……>
                    	……
                    
                    	<bean id="crud.mybatis.urlMapping"
                    			……>
                    		……
                    	</bean>
                    
                    	<!-- [########################################] -->
                    
                    	<bean id="crud.mybatis.auto_dao.msc"
                    			class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                    		<!--
                    		<property name="sqlSessionFactory" ref="crud.mybatis.manual_dao.ssf"/>
                    		-->
                    		<property name="sqlSessionFactory" ref="crud.mybatis.auto_dao.ssf"/>
                    		<property name="basePackage"
                    				value="tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.dao"/>
                    	</bean>
                    
                    	<bean id="crud.mybatis.auto_dao.ssf"
                    			class="org.mybatis.spring.SqlSessionFactoryBean">
                    		<property name="dataSource" ref="ds"/>
                    		<!--
                    		<property name="mapperLocations"
                    				value="classpath:tfw/integration_demo/_04_spring_web_mvc/_02_crud/_03_mybatis_crud/_02_auto_dao_way/dao/impl/oracle/User.mybatis_mapping.xml"/>
                    		-->
                    		<property name="mapperLocations">
                    			<array>
                    				<value>classpath:tfw/integration_demo/_04_spring_web_mvc/_02_crud/_03_mybatis_crud/_02_auto_dao_way/dao/impl/oracle/User.mybatis_mapping.xml</value>
                    				<value>classpath:tfw/integration_demo/_04_spring_web_mvc/_02_crud/_03_mybatis_crud/_02_auto_dao_way/dao/impl/oracle/Item.mybatis_mapping.xml</value>
                    			</array>
                    		</property>
                    	</bean>
                    
                    	<bean id="crud.mybatis.auto_dao.userMgrSvc"
                    			……>
                    		……
                    	</bean>
                    
                    	……
                    </beans>
                    

                  2. 编写测试用例 tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.item_mgr_testcase._02_MyBatisDAO_with_Spring ,逐步将各对象改为从 ApplicationContext 中获取,并在此过程中测试 DAO 的获取步骤及功能。
              3. 业务层:
                1. 修改 ApplicationContext 分项配置文件 src/main/resources/tfw/integration_demo/_04_spring_web_mvc/sub_files/04_mybatis_crud.xml ,以新的 ID 注册业务层对象、并向其注入自动生成的 DAO
                  <?xml version="1.0" encoding="UTF-8"?>
                  <beans ……>
                  	……
                  
                  	<bean id="crud.mybatis.auto_dao.userMgrCtrl"
                  			……
                  		……
                  	</bean>
                  
                  	<!-- [########################################] -->
                  
                  	<bean id="crud.mybatis.auto_dao.itemMgrSvc"
                  			class="tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.service._02_ItemMgrService">
                  		<property name="itemDAO" ref="crud.mybatis.auto_dao.itemDAO"/>
                  	</bean>
                  </beans>
                  

                2. 将测试用例 tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.item_mgr_testcase._02_MyBatisDAO_with_Spring 改名为 tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.item_mgr_testcase._02_MyBatisDAO_and_Service_with_Spring ,修改、添加测试方法,测试业务层类。
              4. 表示层:
                1. 修改“控制器”类 tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.controller._02_ItemMgrController 及相关页面,令跳转目标和页面标题参数化
                  修改 ApplicationContext 分项配置文件 src/main/resources/tfw/integration_demo/_04_spring_web_mvc/sub_files/02_basic_jdbc_crud.xml ,追加注入相关的页面标题和跳转目标。
                2. 修改 ApplicationContext 分项配置文件 src/main/resources/tfw/integration_demo/_04_spring_web_mvc/sub_files/04_mybatis_crud.xml ,注册此“控制器”对象、指定 ID ,并向其注入业务层对象、页面标题和跳转目标:
                  <?xml version="1.0" encoding="UTF-8"?>
                  <beans ……>
                  	……
                  
                  	<bean id="crud.mybatis.auto_dao.itemMgrSvc"
                  			……>
                  		……
                  	</bean>
                  
                  	<bean id="crud.mybatis.auto_dao.itemMgrCtrl"
                  			class="tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.controller._02_ItemMgrController">
                  		<property name="itemMgrSvc" ref="crud.mybatis.auto_dao.itemMgrSvc"/>
                  		<property name="pageTitle"
                  				value="Integration&amp;nbsp;Demo / 04&amp;nbsp;Spring&amp;nbsp;Web&amp;nbsp;MVC / 02&amp;nbsp;Create,&amp;nbsp;Read,&amp;nbsp;Update&amp;nbsp;&amp;amp;&amp;nbsp;Discard / 03&amp;nbsp;MyBatis&amp;nbsp;CRUD / 02&amp;nbsp;Auto&amp;nbsp;DAO&amp;nbsp;Way / 02&amp;nbsp;Item&amp;nbsp;Management - "/>
                  		<property name="jumpTarget">
                  			<props>
                  				<prop key="result">/WEB-INF/pages/tfw/integration_demo/04_spring_web_mvc/02_crud/01_basic_jdbc_crud/02_item_mgr/result.jsp</prop>
                  				<prop key="detail">/WEB-INF/pages/tfw/integration_demo/04_spring_web_mvc/02_crud/01_basic_jdbc_crud/02_item_mgr/detail.jsp</prop>
                  				<prop key="list">/WEB-INF/pages/tfw/integration_demo/04_spring_web_mvc/02_crud/01_basic_jdbc_crud/02_item_mgr/list.jsp</prop>
                  			</props>
                  		</property>
                  	</bean>
                  </beans>
                  

                3. 修改 ApplicationContext 分项配置文件 src/main/resources/tfw/integration_demo/_04_spring_web_mvc/sub_files/04_mybatis_crud.xml ,将 URI /tfw/integration_demo/04_spring_web_mvc/02_crud/03_mybatis_crud/02_auto_dao_way/02_item_mgr/action.spr 映射至此“控制器”对象
                  <?xml version="1.0" encoding="UTF-8"?>
                  <beans ……>
                  	……
                  
                  	<bean id="crud.mybatis.manual_dao.userMgrCtrl"
                  			……>
                  		……
                  	</bean>
                  
                  	<bean id="crud.mybatis.urlMapping"
                  			class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
                  		<property name="mappings">
                  			<props>
                  				<prop key="/tfw/integration_demo/04_spring_web_mvc/02_crud/03_mybatis_crud/01_manual_dao_way/01_user_mgr/action.spr">crud.mybatis.manual_dao.userMgrCtrl</prop>
                  				<prop key="/tfw/integration_demo/04_spring_web_mvc/02_crud/03_mybatis_crud/02_auto_dao_way/01_user_mgr/action.spr">crud.mybatis.auto_dao.userMgrCtrl</prop>
                  				<prop key="/tfw/integration_demo/04_spring_web_mvc/02_crud/03_mybatis_crud/02_auto_dao_way/02_item_mgr/action.spr">crud.mybatis.auto_dao.itemMgrCtrl</prop>
                  			</props>
                  		</property>
                  	</bean>
                  
                  	<!-- [########################################] -->
                  
                  	<bean id="crud.mybatis.auto_dao.msc"
                  			……>
                  		……
                  	</bean>
                  
                  	……
                  </beans>
                  

                4. 修改 或/及 新增相关的索引页,添加指向此控制器的 URI ,确认控制器配置正确。
                5. 测试本样例的增删改查功能。
      4. ……