目录
2.2{@Configuration+@Bean}+@Resource
1. Spring IOC、DI 概念
IOC:Inverse Of Control
原来:要完成一个逻辑,A 要调用[依赖]B ,创建对象B 的动作会放在A 里面
现在:创建B 转交给框架做。创建B 的控制权被外部控制了,而不是A 自己。这种控制反转的设计使得框架管理对象的生命周期和依赖关系。
DI:Dependency Inject
框架创建好的对象B 需要给回A 进行使用,就叫做依赖注入,实现了组件之间的松耦合。
2. Spring IOC、DI 注解使用
Spring的IOC(Inversion of Control)和DI(Dependency Injection)是框架的核心概念,通过注解的方式可以更方便地实现依赖注入。下面我以RouYi为例,展现两种常用的注解使用方法:
首先我们需要将springBoot环境启动才能分析具体代码
2.1 @Component+@Autowired
ICO:
@Component
public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
我们可以看到上面代码将一个类(JwtAuthenticationTokenFilter)声明为Spring bean。这意味着Spring将管理这个类的生命周期,可以将其注入到其他组件中。
DI:
@Autowired
private TokenService tokenService;
@Autowired
注解用于进行自动依赖注入。在这里,它将TokenService
的一个实例注入到JwtAuthenticationTokenFilter
中。
接下来就可以使用成员变量了。
2.2{@Configuration+@Bean}+@Resource
IOC:
@Configuration
public class CaptchaConfig {
这个注解表明这是一个配置类,它用于定义Bean的配置信息。
DI:
@Resource(name = "captchaProducer")
private Producer captchaProducer;
@Resource
注解用于标注一个字段或方法,以便通过名字(name
属性)自动注入与之关联的Bean(captchaProducer),这是通过CaptchaConfig
配置类中getKaptchaBean
方法配置的 DefaultKaptcha
实例。
使用成员变量
3.Spring MVC 注解
3.1 Spring MVC 常用注解
3.3.1 注册Controller[也是一种Bean]
@Controller [每次前端请求返回的一个页面]
@RequestBody[请求体为json] @ResponseBody[返回值为json]
@RestController [每次前端请求返回的一个json
等效于@Controller+@ResponseBody]
3.3.2 注册HTTP Method 处理函数
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
3.3.3 注册Service[也是一种Bean]
@Service
3.2 以RuoYi为例
springBoot环境启动相关代码
3.2.1 注册Controller
3.2.2注册处理函数
@RequestMapping("/common")
3.2.3 使用Controller
Spring MVC 框架会在HTTP 请求到来时,寻找匹配 URI 映射处理函数