1. 项目入口类
-
类名:EasyAApplication.java
-
作用:Spring Boot 应用程序的入口点
-
核心代码:
@SpringBootApplication
public class EasyAApplication {
public static void main(String[] args) {
SpringApplication.run(EasyAApplication.class, args);
}
} -
说明:
@SpringBootApplication
注解标识这是一个 Spring Boot 应用,main
方法通过SpringApplication.run()
启动应用
2. 实体类
- 类名:User.java
- 作用:用户实体类,封装用户信息
- 属性 :
id
:Integer 类型username
:String 类型password
:String 类型
- 特点:包含各属性的 getter 和 setter 方法,符合 JavaBean 规范
3. 配置类
- 类名:EasyConfig.java
- 作用 :Spring MVC 配置类,实现
WebMvcConfigurer
接口 - 主要配置 :
-
拦截器配置:
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new EasyInterceptor())
.addPathPatterns("/testaa") // 拦截/testaa路径
.excludePathPatterns("/easyaa"); // 排除/easyaa路径
} -
资源处理器配置:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/easyfile/**")
.addResourceLocations("file:G:/uploadfile/"); // 映射本地文件路径
}
-
4. 拦截器
- 类名:EasyInterceptor.java
- 作用:实现请求的预处理、后处理等拦截功能
- 主要方法 :
preHandle()
:在 handler 执行之前处理,返回 true 表示放行,false 表示终止请求postHandle()
:handler 执行完成之后处理afterCompletion()
:SpringMVC 整个请求过程执行完毕后处理
5. 异常处理器
- 类名:EasyExceptionHandler.java
- 作用 :全局异常处理(注:当前
@ControllerAdvice
注解被注释) - 主要处理 :
RuntimeException
:返回 "发生了一点小问题,请稍后"NullPointerException
和IndexOutOfBoundsException
:返回 "里面有个小玩意没找到"
- 说明:
@ExceptionHandler
注解指定处理的异常类型,@ControllerAdvice
注解使其成为全局异常处理器
6. 文件上传控制器
-
类名:FileuploadController.java
-
作用:处理文件上传功能
-
核心方法:
@RequestMapping("upload")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
// 获取原文件名并生成新文件名(UUID+后缀)
// 保存文件到G:/uploadfile/目录
// 返回访问路径/easyfile/新文件名
}
7. 异常测试控制器
- 类名:EasyBController.java
- 作用:测试异常处理功能
- 主要方法 :
testException()
:执行 12/0 会抛出ArithmeticException
testb()
:简单的测试方法
- 说明:演示了
@ExceptionHandler
注解的使用,注释中说明其作用范围
8. 主要控制器
- 类名:EasyAController.java
- 作用:处理各种请求,演示 Spring MVC 核心功能
- 主要内容 :
- 请求映射:
@RequestMapping
:通用请求映射@GetMapping
、@PostMapping
、@PutMapping
、@DeleteMapping
:RESTful 风格请求映射
- 转发与重定向:
- 转发:
return "forward:easyb";
(默认方式) - 重定向:
return "redirect:easyb";
- 转发:
- 参数接收方式:
@RequestParam
:接收请求参数@PathVariable
:接收 URL 路径参数- Map 接收参数
- 实体对象接收参数(推荐)
- RESTful 风格接口示例:
@GetMapping("user/{id}")
:获取用户@PostMapping("user")
:新增用户@PutMapping("user")
:修改用户@DeleteMapping("user/{id}")
:删除用户
- 请求映射: