一.简介
这是一个基于Spring MVC和Vue.js的简单图书管理系统,它实现了基于RESTful风格的图书增删改查(CRUD)功能。系统使用Vue.js作为前端框架,Spring MVC作为后端框架,通过REST API进行交互。
二.代码分析
1.Servlet配置:ServletContainersInitConfig(后端部分)
AbstractAnnotationConfigDispatcherServletInitializer:用于初始化Spring配置。它将SpringMvcConfig作为Spring MVC的配置类,加载并配置Spring的Web应用。
通过CharacterEncodingFilter设置UTF-8编码,防止中文或特殊字符在传输过程中出现乱码。
getServletMappings:将所有请求映射到/路径,意味着所有请求都会交由DispatcherServlet处理。
2.Spring MVC配置:SpringMvcConfig(后端部分)
@ComponentScan:扫描com.itheima.controller和com.itheima.config包下的组件,自动注册所有Controller和配置类。
@EnableWebMvc:启用Spring MVC的Web功能,如视图解析、消息转换等,简化了配置。
3.静态资源配置:SpringMvcSupport(后端部分)
addResourceHandlers:配置了静态资源的访问路径。当访问/pages/**路径时,会从/pages/目录查找文件,类似地,其他静态资源如JS、CSS、插件等也进行了配置。
4.RESTful风格的图书Controller:BookController(后端部分)
@RestController:这是一个简化版的@Controller和@ResponseBody组合,返回的对象会自动转换为JSON格式返回客户端。
@RequestMapping("/books"):为所有以/books开头的请求映射到此控制器。
@PostMapping:用于处理HTTP POST请求,将客户端提交的图书数据(通过@RequestBody注解)保存。
@GetMapping:处理GET请求,返回图书的列表数据,返回的是List<Book>对象,Spring MVC会自动转换为JSON格式。
5.页面结构和样式
引入了Element UI组件库的样式文件,以及自定义样式style.css,Element UI提供了很多常用的UI组件,如按钮、表格、对话框等。
6.Vue.js数据绑定和组件
Vue.js绑定数据:dataList绑定到el-table组件,显示图书列表。
Element UI组件:使用el-input作为输入框,el-button作为按钮,el-table用于展示图书数据,el-pagination用于分页功能。
7.Vue.js方法和API请求
openSave():弹出新增图书的表单窗口,重置表单数据。
saveBook():使用axios.post发送POST请求,将表单数据formData作为请求体发送到后端,调用/books路径的save方法。
getAll():使用axios.get发送GET请求,获取所有图书的列表,并将响应的数据(图书列表)赋值给dataList,更新前端页面。
三.总结
后端(Spring MVC):提供了图书的增、查功能,采用RESTful风格的API,通过@RestController、@PostMapping、@GetMapping等注解定义接口。
前端(Vue.js):通过Element UI组件展示图书列表,提供增、查功能,使用axios进行HTTP请求与后端进行交互。