Spring IOC、DI 注解使用
Spring IOC、DI 概念
IOC:Inverse Of Control
• 原来:要完成一个逻辑,A 要调用[依赖]B ,创建对象B 的动作会放在A 里面
• 现在:创建B 转交给框架做。创建B 的控制权被外部控制了,而不是A 自己,叫做控制反转。
IOC作用
控制:创建对象,给属性赋值,声明对象的周期.
反转:把对象的创建,赋值,交给容器来管理,开发人员需要使用的时候直接从容器中取出即可,无需手动创建对象,当对象不使用时容器会自动回收,这样既节省了new对象的空间,也方便了开发.
正转:对象的创建,赋值,周期管理都需要开发人员手动执行,开发人员拥有对象的完全控制权.
作用:节省空间,并且方便管理,设想一下如果我们没需要用一次对象,就new一个出来,而不进行回收,那么对于同一类对象我们只需要用到一个,而new了很多个,这样就会浪费很多空间,并且手动创建对象,给属性赋值等操作,十分繁琐,造成代码冗余.
DI:Dependency Inject
• 框架创建好的对象B 需要给回A 进行使用,就叫做依赖注入。
DI作用
DI是IOC的技术实现,主要作用就是基于Spring容器创建对象,给对象赋值。
Spring IOC、DI 注解在RuoYi_vue中的使用代码示例
使用方法:@Component+@Autowired、{@Configuration+@Bean}+@Resource
[IOC]注册Bean 到Spring 容器:@Component
[DI]在CaptchaController 类中注入Bean:@Autowired
使用成员变量
Spring MVC 注解使用
Spring MVC 常用注解
•@Controller/@RequestMapping/@RequestBody/@ResponseBody
•@RestController/@GetMapping/@PostMapping/@PutMapping/@DeleteMapping
•@Service
Spring MVC 注解在RuoYi_vue中的使用代码示例
注册Controller[也是一种Bean]
•@Controller [每次前端请求返回的一个页面]
•@RequestBody[请求体为json]
•@ResponseBody[返回值为json]
•@RestController [每次前端请求返回的一个json,
等效于@Controller+@ResponseBody]
注册HTTP Method 处理函数
•@GetMapping
•@PostMapping
•@PutMapping
•@DeleteMapping
注册Service[也是一种Bean]
•@Service
前端处理->后端处理
后端处理:
SysLogininforController ---> /monitor/logininfor/list
/monitor/logininfor/export
/monitor/logininfor/{infoIds}
/monitor/logininfor/clean