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

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. 样例 - 用户管理:
            1. 环境准备:……
            2. 样例编写:
              1. 实体类:……
              2. DAO 层:……
              3. 业务层:
                1. 沿用“基本 JDBC CRUD”样例既有的业务层类,修改 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.ssf"
                  			……>
                  		……
                  	</bean>
                  
                  	<bean id="crud.mybatis.auto_dao.userMgrSvc"
                  			class="tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.service._01_UserMgrService">
                  		<property name="userDAO" ref="crud.mybatis.auto_dao.userDAO"/>
                  	</bean>
                  </beans>
                  

                2. 将测试用例 tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.user_mgr_testcase._02_MyBatisDAO_with_Spring 改名为 tfw.integration_demo._04_spring_web_mvc._02_crud._03_mybatis_crud._02_auto_dao_way.user_mgr_testcase._02_MyBatisDAO_and_Service_with_Spring ,修改、添加测试方法,测试业务层类。
                  ……
                  public class _02_MyBatisDAO_and_Service_with_Spring
                  		extends A_UserMgrTestCaseBase
                  {
                  
                  	……
                  
                  	private I_UserDAO userDAO;
                  
                  	private _01_UserMgrService userMgrSvc;
                  
                  	@Test
                  	public void testObjects() throws IOException
                  	{
                  		……
                  
                  		session.close();
                  		System.out.println("SqlSession Closed:\n\t" + session);
                  
                  		_01_UserMgrService userMgrSvc = new _01_UserMgrService();
                  		userMgrSvc.setUserDAO(userDAO);
                  		System.out.println("Service:\n\t" + userMgrSvc);
                  	}
                  
                  	@Test
                  	public void testObjects2() throws IOException
                  	{
                  		……
                  		// I_UserDAO userDAO = session.getMapper(I_UserDAO.class);
                  		I_UserDAO userDAO =
                  				actxt.getBean("crud.mybatis.auto_dao.userDAO", I_UserDAO.class);
                  		System.out.println("DAO:\n\t" + userDAO);
                  
                  		// session.close();
                  		// System.out.println("SqlSession Closed:\n\t" + session);
                  
                  		// _01_UserMgrService userMgrSvc = new _01_UserMgrService();
                  		// userMgrSvc.setUserDAO(userDAO);
                  		_01_UserMgrService userMgrSvc = actxt.getBean(
                  				"crud.mybatis.auto_dao.userMgrSvc", _01_UserMgrService.class);
                  		System.out.println("Service:\n\t" + userMgrSvc);
                  
                  		actxt.close();
                  		System.out.println("Application Context Closed:\n\t" + actxt);
                  	}
                  
                  	@Before
                  	public void init() // throws IOException
                  	{
                  		……
                  
                  		userDAO =
                  				actxt.getBean("crud.mybatis.auto_dao.userDAO", I_UserDAO.class);
                  		System.out.println("DAO:\n\t" + userDAO);
                  
                  		userMgrSvc = actxt.getBean("crud.mybatis.auto_dao.userMgrSvc",
                  				_01_UserMgrService.class);
                  		System.out.println("Service:\n\t" + userMgrSvc);
                  	}
                  
                  	@After
                  	public void close()
                  	{
                  		……
                  	}
                  
                  	……
                  
                  	@Test
                  	public void testUserDAO_discardById() throws SQLException
                  	{
                  		……
                  	}
                  
                  	@Test
                  	public void testUserMgrSvc_createUser() throws SQLException
                  	{
                  		……
                  	}
                  
                  	……
                  
                  	private void showUsers(List<User> lstUsers)
                  	{
                  		……
                  	}
                  
                  }
                  

              4. 表示层:
                1. 控制器逻辑同“Spring JDBC Template CRUD”样例,直接沿用既有的“控制器”类;
                  修改 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.userMgrSvc"
                  			……>
                  		……
                  	</bean>
                  
                  	<bean id="crud.mybatis.auto_dao.userMgrCtrl"
                  			class="tfw.integration_demo._04_spring_web_mvc._02_crud._01_basic_jdbc_crud.controller._01_UserMgrController">
                  		<property name="userMgrSvc" ref="crud.mybatis.auto_dao.userMgrSvc"/>
                  		<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 / 01&amp;nbsp;User&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/01_user_mgr/result.jsp</prop>
                  				<prop key="detail">/WEB-INF/pages/tfw/integration_demo/04_spring_web_mvc/02_crud/01_basic_jdbc_crud/01_user_mgr/detail.jsp</prop>
                  				<prop key="login">/WEB-INF/pages/tfw/integration_demo/04_spring_web_mvc/02_crud/03_mybatis_crud/02_auto_dao_way/01_user_mgr/login.html</prop>
                  				<prop key="list">/WEB-INF/pages/tfw/integration_demo/04_spring_web_mvc/02_crud/01_basic_jdbc_crud/01_user_mgr/list.jsp</prop>
                  			</props>
                  		</property>
                  	</bean>
                  </beans>
                  

                2. 修改 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/01_user_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>
                  			</props>
                  		</property>
                  	</bean>
                  
                  	<!-- [########################################] -->
                  
                  	<bean id="crud.mybatis.auto_dao.msc"
                  			……>
                  		……
                  	</bean>
                  
                  	……
                  </beans>
                  

                3. 修改 或/及 新增相关的索引页,添加指向此控制器的 URI ,确认控制器配置正确。
                4. 编写本样例的专用页面 src/main/webapp/WEB-INF/pages/tfw/integration_demo/04_spring_web_mvc/02_crud/03_mybatis_crud/02_auto_dao_way/01_user_mgr/login.html
                5. 测试本样例的“登录”和增删改查功能。
          2. ……