以RouYi为例分析Spring IOC、DI

目录

1. Spring IOC、DI 概念

2. Spring IOC、DI 注解使用

2.1 @Component+@Autowired

2.2{@Configuration+@Bean}+@Resource

3.Spring MVC 注解

3.1 Spring MVC 常用注解

        3.3.1 注册Controller[也是一种Bean]

       3.3.2 注册HTTP Method 处理函数

        3.3.3 注册Service[也是一种Bean]

3.2 以RuoYi为例

3.2.1 注册Controller

3.2.2注册处理函数

3.2.3 使用Controller


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 映射处理函数

猜你喜欢

转载自blog.csdn.net/weixin_64890968/article/details/134460952
今日推荐