重构测试项目为spring+springMVC+Mybatis框架

打印 上一主题 下一主题

主题 680|帖子 680|积分 2040

重构测试项目为spring+springMVC+Mybatis框架

配景

继前次将自动化测试时的医药管理信息系统项目用idea运行乐成后,由于项目结构有些乱,一部分代码好像也重复,于是计划重新重构以下该项目,这次先利用spring+springMVC+Mybatis框架
一、计划项目目录结构

按ssm框架重新计划了目录结构,删除了一些重复代码
  1. ├─.idea
  2. ├─src
  3. │  └─main
  4. │      ├─java
  5. │      │  └─mms
  6. │      │      ├─controller
  7. │      │      ├─interceptors
  8. │      │      ├─mapper
  9. │      │      ├─pojo
  10. │      │      └─services
  11. │      ├─resources
  12. │      │  ├─mybatis
  13. │      │  │  ├─mybatis-config.xml
  14. │      │  │  └─mappers
  15. │      │  ├─spring
  16. │      │  │   ├─applicationContext.xml   
  17. │      │  │   ├─applicationContext-mybatis.xml      
  18. │      │  │   └─springMVCConfig.xml   
  19. │      │  ├─jdbc.properties
  20. │      │  ├─log4j.properties
  21. │      │  └─static
  22. │      │      ├─css
  23. │      │      ├─images
  24. │      │      ├─js
  25. │      │      └─myjavascript
  26. │      └─webapp
  27. │          └─WEB-INF
  28. │              └─templates
  29. │                  ├─agency
  30. │                  ├─client
  31. │                  └─medicine
  32. └─target
复制代码
同时也修改了文件名(tabs–>templates),如果你也修改了记得将对应的代码也进行修改

二、将war包中的class

由于老师给的是项目打包后的war包,代码都是.class文件,我们需要利用工具JD-GUI将.class文件转换为.java文件,转换后将.java文件放入对应的包下。

三、修改配置文件springMVCConfig.xml并添加控制器


  • 由于资源文件位置发生了改变,重启项目后会出现资源访问404的错误,我们需要对相关的配置文件springMVCConfig.xml进行修改:添加静态资源映射,调解视图解析器配置和访问请求配置
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  4.         xmlns:context="http://www.springframework.org/schema/context"
  5.         xmlns:mvc="http://www.springframework.org/schema/mvc"
  6.         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7.         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
  8.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  9.         <!-- 注解驱动 -->
  10.         <mvc:annotation-driven />
  11.        
  12.         <!-- 定义Controller的扫描包 -->
  13.         <context:component-scan base-package="mms.controller" />
  14.         <!-- 定义静态资源映射 -->
  15.         <mvc:resources mapping="/static/**" location="classpath:/static/" />
  16.         <!-- 定义视图解析器 -->
  17.         <bean
  18.                 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  19.                 <property name="prefix" value="/WEB-INF/templates/" />
  20.                 <property name="suffix" value=".html" />
  21.         </bean>
  22.         <!-- 处理静态资源被“/”所拦截的问题 -->
  23.         <mvc:default-servlet-handler />
  24.         <!-- 定义拦截器 -->
  25.         <mvc:interceptors>
  26.                
  27.                 <mvc:interceptor>
  28.                         <!-- 所有的请求都进入 -->
  29.                        
  30.                         <mvc:mapping path="/**"/>
  31.                         <!-- 不拦截登陆页面 -->
  32.                         <mvc:exclude-mapping path="/login.html" />
  33.                         <mvc:exclude-mapping path="/static/css/*" />
  34.                         <mvc:exclude-mapping path="/static/js/**" />
  35.                         <mvc:exclude-mapping path="/static/images/*" />
  36.                         <!-- 不拦截处理登陆的业务 -->
  37.                         <mvc:exclude-mapping path="/Login/loginUser" />
  38.                        
  39.                         <bean class="mms.interceptors.MyHandlerInterceptor"/>
  40.                 </mvc:interceptor>
  41.                
  42.         </mvc:interceptors>
  43. </beans>
复制代码

  • 由于之前的html文件都是直接袒露在根目录下的静态资源,因此可以直接通过 URL 访问。而现在我们将html文件移动到 WEB-INF 目录下,需要视图解析器通过控制器返回视图名去访问,因此我们还需要添加控制器IndexController
  1. package mms.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. /**
  5. * @author Orange peel
  6. * @create 2025-02-16 19:08
  7. */
  8. @Controller
  9. public class IndexController {
  10.     @RequestMapping("/index")
  11.     public String showIndex() {
  12.         return "index";  // 返回的视图名称
  13.     }
  14.     @RequestMapping("/templates/client/Search")
  15.     public String clientSearch() {
  16.         return "client/Search";
  17.     }
  18.     @RequestMapping("/templates/agency/Search")
  19.     public String agencySearch() {
  20.         return "agency/Search";
  21.     }
  22.     @RequestMapping("/templates/medicine/Search")
  23.     public String medicineSearch() {
  24.         return "medicine/Search";
  25.     }
  26.     @RequestMapping("/templates/client/Entry")
  27.     public String clientEntry() {
  28.         return "client/Entry";
  29.     }
  30.     @RequestMapping("/templates/agency/Entry")
  31.     public String agencyEntry() {
  32.         return "agency/Entry";
  33.     }
  34.     @RequestMapping("/templates/medicine/Entry")
  35.     public String medicineEntry() {
  36.         return "medicine/Entry";
  37.     }
  38.     @RequestMapping("/templates/client/Delete")
  39.     public String clientDelete() {
  40.         return "client/Delete";
  41.     }
  42.     @RequestMapping("/templates/agency/Delete")
  43.     public String agencyDelete() {
  44.         return "agency/Delete";
  45.     }
  46.     @RequestMapping("/templates/medicine/Delete")
  47.     public String medicineDelete() {
  48.         return "medicine/Delete";
  49.     }
  50.     @RequestMapping("/templates/client/Modify")
  51.     public String clientModify() {
  52.         return "client/Modify";
  53.     }
  54.     @RequestMapping("/templates/agency/Modify")
  55.     public String agencyModify() {
  56.         return "agency/Modify";
  57.     }
  58.     @RequestMapping("/templates/medicine/Modify")
  59.     public String medicineModify() {
  60.         return "medicine/Modify";
  61.     }
  62.     @RequestMapping("/templates/client/Browse")
  63.     public String clientBrowse() {
  64.         return "client/Browse";
  65.     }
  66.     @RequestMapping("/templates/agency/Browse")
  67.     public String agencyBrowse() {
  68.         return "agency/Browse";
  69.     }
  70.     @RequestMapping("/templates/medicine/Browse")
  71.     public String medicineBrowse() {
  72.         return "medicine/Browse";
  73.     }
  74.     @RequestMapping("/templates/client/Report")
  75.     public String clientReport() {
  76.         return "client/Report";
  77.     }
  78.     @RequestMapping("/templates/agency/Report")
  79.     public String agencyReport() {
  80.         return "agency/Report";
  81.     }
  82.     @RequestMapping("/templates/medicine/Report")
  83.     public String medicineReport() {
  84.         return "medicine/Report";
  85.     }
  86.     @RequestMapping("/templates/User")
  87.     public String User() {
  88.         return "User";
  89.     }
  90. }
复制代码
四、配置tomcat后直接启动即可



等下次有空再重构成springboot项目,加纳~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表