当前位置: 首页 > news >正文

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

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

背景

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

一、设计项目目录结构

按ssm框架重新设计了目录结构,删除了一些重复代码

├─.idea
├─src
│  └─main
│      ├─java
│      │  └─mms
│      │      ├─controller
│      │      ├─interceptors
│      │      ├─mapper
│      │      ├─pojo
│      │      └─services
│      ├─resources
│      │  ├─mybatis
│      │  │  ├─mybatis-config.xml
│      │  │  └─mappers
│      │  ├─spring
│      │  │   ├─applicationContext.xml   
│      │  │   ├─applicationContext-mybatis.xml      
│      │  │   └─springMVCConfig.xml   
│      │  ├─jdbc.properties
│      │  ├─log4j.properties
│      │  └─static
│      │      ├─css
│      │      ├─images
│      │      ├─js
│      │      └─myjavascript
│      └─webapp
│          └─WEB-INF
│              └─templates
│                  ├─agency
│                  ├─client
│                  └─medicine
└─target

同时也修改了文件名(tabs–>templates),如果你也修改了记得将对应的代码也进行修改
在这里插入图片描述

二、将war包中的class

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

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

  1. 由于资源文件位置发生了改变,重启项目后会出现资源访问404的错误,我们需要对相关的配置文件springMVCConfig.xml进行修改:添加静态资源映射,调整视图解析器配置和访问请求配置
<?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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 注解驱动 --><mvc:annotation-driven /><!-- 定义Controller的扫描包 --><context:component-scan base-package="mms.controller" /><!-- 定义静态资源映射 --><mvc:resources mapping="/static/**" location="classpath:/static/" /><!-- 定义视图解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/templates/" /><property name="suffix" value=".html" /></bean><!-- 处理静态资源被“/”所拦截的问题 --><mvc:default-servlet-handler /><!-- 定义拦截器 --><mvc:interceptors><mvc:interceptor><!-- 所有的请求都进入 --><mvc:mapping path="/**"/><!-- 不拦截登陆页面 --><mvc:exclude-mapping path="/login.html" /><mvc:exclude-mapping path="/static/css/*" /><mvc:exclude-mapping path="/static/js/**" /><mvc:exclude-mapping path="/static/images/*" /><!-- 不拦截处理登陆的业务 --><mvc:exclude-mapping path="/Login/loginUser" /><bean class="mms.interceptors.MyHandlerInterceptor"/></mvc:interceptor></mvc:interceptors></beans>
  1. 由于之前的html文件都是直接暴露在根目录下的静态资源,因此可以直接通过 URL 访问。而现在我们将html文件移动到 WEB-INF 目录下,需要视图解析器通过控制器返回视图名去访问,因此我们还需要添加控制器IndexController
package mms.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;/*** @author Orange peel* @create 2025-02-16 19:08*/
@Controller
public class IndexController {@RequestMapping("/index")public String showIndex() {return "index";  // 返回的视图名称}@RequestMapping("/templates/client/Search")public String clientSearch() {return "client/Search";}@RequestMapping("/templates/agency/Search")public String agencySearch() {return "agency/Search";}@RequestMapping("/templates/medicine/Search")public String medicineSearch() {return "medicine/Search";}@RequestMapping("/templates/client/Entry")public String clientEntry() {return "client/Entry";}@RequestMapping("/templates/agency/Entry")public String agencyEntry() {return "agency/Entry";}@RequestMapping("/templates/medicine/Entry")public String medicineEntry() {return "medicine/Entry";}@RequestMapping("/templates/client/Delete")public String clientDelete() {return "client/Delete";}@RequestMapping("/templates/agency/Delete")public String agencyDelete() {return "agency/Delete";}@RequestMapping("/templates/medicine/Delete")public String medicineDelete() {return "medicine/Delete";}@RequestMapping("/templates/client/Modify")public String clientModify() {return "client/Modify";}@RequestMapping("/templates/agency/Modify")public String agencyModify() {return "agency/Modify";}@RequestMapping("/templates/medicine/Modify")public String medicineModify() {return "medicine/Modify";}@RequestMapping("/templates/client/Browse")public String clientBrowse() {return "client/Browse";}@RequestMapping("/templates/agency/Browse")public String agencyBrowse() {return "agency/Browse";}@RequestMapping("/templates/medicine/Browse")public String medicineBrowse() {return "medicine/Browse";}@RequestMapping("/templates/client/Report")public String clientReport() {return "client/Report";}@RequestMapping("/templates/agency/Report")public String agencyReport() {return "agency/Report";}@RequestMapping("/templates/medicine/Report")public String medicineReport() {return "medicine/Report";}@RequestMapping("/templates/User")public String User() {return "User";}
}

四、配置tomcat后直接启动即可

在这里插入图片描述

在这里插入图片描述

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

http://www.lryc.cn/news/538516.html

相关文章:

  • 如何使用OPENAI的Whisper功能进行音频字母提取功能
  • DFS算法篇:理解递归,熟悉递归,成为递归
  • 2025java常见面试题第一弹
  • JMeter工具介绍、元件和组件的介绍
  • 机舱卫生和空气质量改善
  • springBoot之环境变量
  • 萨班斯-奥克斯利法案(Sarbanes-Oxley Act, SOX):公司财务透明度的守护者(中英双语)
  • iOS 中使用 FFmpeg 的高级功能 - 滤镜(Filters)
  • tomcat html乱码
  • kubectl exec 实现的原理
  • Unity中可靠的UDP实现
  • CentOS 7操作系统部署KVM软件和创建虚拟机
  • Golang GORM系列:GORM分页和排序
  • WPF的MVVMLight框架
  • 微服务SpringCloudAlibaba组件sentinel教程【详解sentinel的使用以及流量控制、熔断降级、热点参数限流等,附有示例+代码】
  • ScoreFlow:通过基于分数的偏好优化掌握 LLM 智体工作流程
  • 数字水印嵌入及提取系统——基于小波变换GUI
  • 基于海思soc的智能产品开发(图像处理的几种需求)
  • 【R语言】聚类分析
  • Spring 项目接入 DeepSeek,分享两种超简单的方式!
  • docker 进阶命令(基于Ubuntu)
  • 机器学习数学基础:29.t检验
  • HarmonyNext上传用户相册图片到服务器
  • WebAssembly 3.0发布:浏览器端高性能计算迎来新突破!
  • 计算机组成原理—— 外围设备(十三)
  • 面试题之Vuex,sessionStorage,localStorage的区别
  • window中git bash使用conda命令
  • 象棋掉落动画(局部旋转动画技巧)
  • Pycharm 2024在解释器提供的python控制台中运行py文件
  • 课题推荐:高空长航无人机多源信息高精度融合导航技术研究