RuoYi 中 Spring IOC/DI 与 Spring MVC 注解实战分析
一、Spring 环境启动核心入口RuoYi 的 Spring 全容器启动依靠以下代码代码位置ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java作用说明SpringBootApplication开启 Spring Boot 自动配置、包扫描、Bean 装载SpringApplication.run()启动 IOC 容器加载所有 Bean这是整个项目 Spring 环境的唯一入口二、Spring IOC/DI 自定义类型创建与注入1. IOC使用 Configuration Bean 注册自定义 BeanRuoYi 大量使用配置类手动创建 Bean比Component更灵活。代码位置ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java注解与作用解析注解 / 代码作用说明Configuration标记这是 Spring 配置类启动时会被自动扫描EnableCaching开启 Spring 缓存支持为 Redis 做准备Bean告诉 Spring把redisTemplate()方法返回的对象创建并放入 IOC 容器RedisTemplate配置自定义 Redis 序列化规则用 FastJSON避免乱码2. DIAutowired 注入 IOC 容器中的 Bean文件路径ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/MyStudentController.java这是 Spring DI依赖注入的典型用法。通过Autowired注解Spring 会自动从 IOC 容器中找到IMyStudentService的实例并注入Controller 层无需手动创建对象直接调用myStudentService就能执行业务逻辑。3. 完整执行流程IOC 创建对象通过Configuration Bean手动创建RedisTemplate实例并交给 Spring IOC 容器统一管理。DI 注入对象在MyStudentController中使用Autowired注解自动从 IOC 容器中获取IMyStudentService对象并注入。使用对象控制器方法中直接调用注入的服务对象方法不需要 new 对象、不需要初始化完全由 Spring 管理生命周期。三、Spring MVC 注解1. 控制类定义RestController 统一前缀文件路径ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/MyStudentController.java1.RestController表示这是一个Spring MVC 控制器会把返回值自动转成 JSON 格式把当前类交给 Spring 管理2.RequestMapping(/system/student)设置整个模块的统一接口前缀所有接口都会以/system/student开头2. 列表查询GetMapping 分页 AOP文件路径ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/MyStudentController.java注解与作用GetMapping(/list)Spring MVC 注解处理 GET 请求访问地址/system/student/liststartPage()若依框架自带分页方法底层是 AOP 实现返回 TableDataInfo统一封装分页数据前后端分离标准格式3. 新增PostMapping RequestBody文件路径ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/MyStudentController.java注解作用说明PostMappingSpring MVC 注解用于处理 POST 请求实现新增功能。RequestBody接收前端传递的 JSON 数据并自动将其绑定到MyStudent对象上。PreAuthorize若依框架的权限控制注解确保只有拥有system:student:add权限的用户才能调用此接口。Log日志注解记录用户的新增操作便于后续审计。4. 删除DeleteMapping 路径参数文件路径ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/MyStudentController.java注解作用说明DeleteMapping(/{ids})Spring MVC 注解用于处理 DELETE 请求实现删除功能。/{ids}表示这是一个路径参数。PathVariable Long[] ids接收 URL 路径中的ids参数并绑定为 Long 数组支持批量删除。PreAuthorize权限控制确保只有拥有system:student:remove权限的用户才能调用。Log日志注解记录删除操作。四、完整执行流程作业必写启动SpringBootApplication启动 Spring 容器创建Configuration Bean创建 BeanRedisTemplate注入Autowired注入 Service、RedisTemplate 等对象路由RestController GetMapping/PostMapping接收前端请求响应统一返回TableDataInfo / AjaxResult格式数据五、测试结论Spring IOC 负责创建、管理、存储项目中的所有 Bean 对象DI 依赖注入实现模块解耦无需手动 new 对象Spring MVC 注解完成 HTTP 接口开发实现前后端数据交互RuoYi 整套架构完全基于 Spring 注解驱动简洁高效代码可直接运行、可移植、符合企业级工程开发规范
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2572233.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!