目录

IOC与DI

Spring IOC与DI

IOC【Inversion of Control】(控制反转)

DI【Dependency Injection】(依赖注入)

作用

ruoyi中Spring IOC与DI的实现

@Component及其派生注解:

@Autowired注解:

@Configuration和@Bean注解:

@Value注解:

其他注解:

Spring容器的启动和配置:

ruoyi ruoyi中Spring IOC与DI的实现示例

MVC框架

Spring MVC

模型(Model)

视图(View)

控制器(Controller)

常用注释

ruoyi中使用Spring MVC

一般步骤

ruoyi中使用Spring MVC实际案例


IOC与DI

Spring IOC与DI

IOC【Inversion of Control】(控制反转)

IOC是一种设计原则,它反转了传统应用程序开发中对象的创建和依赖关系的控制方式。

在传统方式中,对象的创建和管理由开发者手动完成。

而在IOC中,对象的创建和管理交由容器(如Spring容器)来完成。容器负责创建对象,并将对象的依赖关系注入到相应的对象中。

DI【Dependency Injection】(依赖注入)

DI是IOC的一种具体实现方式,通过依赖注入,容器将对象之间的依赖关系注入到对象中,使得对象之间的耦合度降低。

在传统方法中,依赖注入可以通过构造函数、属性或者方法来实现。

通过DI,对象不需要自己创建或者查找依赖的对象,而是通过容器自动注入所需的依赖对象。

作用

解耦和模块化:IOC和DI可以将应用程序的不同模块解耦,降低了模块之间的依赖关系,使得模块更加独立和可复用。

管理对象的生命周期:容器负责创建和管理对象的生命周期,确保对象在需要时正确地创建、销毁和管理资源,提高了应用程序的性能和资源利用效率。

管理依赖关系:通过依赖注入,容器负责管理对象之间的依赖关系,确保依赖的对象正确地注入到相应的对象中,简化了开发过程。

提高可测试性:IOC和DI使得对象的依赖关系明确可见,便于进行单元测试和集成测试,提高了代码的可测试性和可维护性。

配置灵活性:通过配置文件或者注解,可以灵活地配置对象之间的依赖关系,而不需要修改代码,提高了应用程序的灵活性和可扩展性。

ruoyi中Spring IOC与DI的实现

@Component及其派生注解:

RuoYi项目中的各个组件,如服务类、控制器、配置类等,通常会使用@Component注解或其派生注解(如@Service、@Controller、@Repository等)进行标注。这些注解将这些类标识为Spring容器的组件,由容器负责创建和管理对象的生命周期。

@Autowired注解:

用于实现依赖注入,将依赖的对象自动注入到目标对象中。在RuoYi项目中,通过在需要注入依赖的字段、构造函数或Setter方法上使用@Autowired`注解,来实现对象之间的依赖关系注入。Spring容器会根据类型匹配将合适的对象注入到目标对象中。

@Configuration和@Bean注解:

RuoYi项目中的配置类通常会使用@Configuration注解进行标记,表示这是一个配置类。在配置类中,可以使用@Bean注解来定义Bean对象的创建和配置。这些Bean对象将由Spring容器进行管理,并可以通过@Autowired注解进行依赖注入。

@Value注解:

注解用于注入配置值到目标对象中。在RuoYi中,可以使用@Value注解将配置文件中的值注入到组件的字段或方法参数中。例如,可以通过@Value("${ruoyi.upload.path}")将配置文件中的ruoyi.upload.path`属性值注入到对应的字段中。

其他注解:

RuoYi项目中还使用了其他一些注解,如@Qualifier注解用于指定特定的依赖注入对象,@Primary注解用于指定优先注入的对象,@Lazy注解用于延迟初始化对象等。这些注解配合使用,可以更精确地控制对象的注入行为。

Spring容器的启动和配置:

RuoYi项目通过Spring Boot框架来启动和配置Spring容器。在启动类(如RuoYiApplication)中,使用@SpringBootApplication注解表示这是一个Spring Boot应用程序的入口点。Spring Boot会自动扫描项目中的组件,并根据注解进行配置和初始化。

ruoyi ruoyi中Spring IOC与DI的实现示例

@Component注解将SysLoginService类标记为一个Spring组件。这意味着Spring容器会自动扫描并识别这个类,并将其实例化为一个Bean。

@Autowired注解将SysPermissionService类型的Bean自动注入到permissionService字段上。

实际用法

MVC框架

Spring MVC

Spring MVC是Spring Framework的一部分,是一个基于Java的Web框架。它提供了一种用于开发Web应用程序的模型-视图-控制器(Model-View-Controller,MVC)架构。分为以下三部分

模型(Model)

表示应用程序的数据模型,通常是通过业务逻辑层(Service)获取的数据对象。模型对象封装了应用程序的状态和业务逻辑。

视图(View)

表示应用程序的用户界面,负责将模型的数据呈现给用户。视图通常以HTML、XML、JSON等格式生成响应内容,并发送给客户端浏览器。

控制器(Controller)

是Spring MVC的核心组件,负责处理用户请求、调用适当的业务逻辑和模型处理,并将结果传递给适当的视图进行渲染。控制器处理用户请求并根据请求的URL路径、请求参数等决定调用哪个业务逻辑组件来处理请求。

常用注释

@Controller:用于标记一个类为控制器,处理用户请求并返回响应。

@RequestMapping:用于映射请求路径和处理方法。可以用在类级别或方法级别上。在类级别上,定义了公共的请求前缀;在方法级别上,定义了特定请求路径的处理方法。

@PathVariable:用于将URL路径中的变量绑定到方法参数。

@RequestParam:用于将请求参数绑定到方法参数。

@RequestBody:用于将请求体中的数据绑定到方法参数,常用于处理POST请求的JSON数据。

@ResponseBody:用于将方法返回的对象转换为响应体,并发送给客户端,常用于处理RESTful API。

@Valid:用于启用参数验证,结合javax.validation中的注解(如@NotNull、@Size等)来进行数据验证。

@ModelAttribute:用于将请求参数绑定到方法参数,并同时将其作为模型属性添加到模型中。

@SessionAttributes:用于声明模型属性需要存储在会话(session)中,以便多个请求之间共享。

@InitBinder:用于自定义数据绑定和格式化逻辑。

ruoyi中使用Spring MVC

一般步骤

  1. 创建Controller类:在Ruoyi项目中,可以创建一个继承自BaseController的Controller类,或者直接创建普通的Spring MVC Controller类。该类负责处理具体的请求和业务逻辑。

  2. 定义请求映射:使用@RequestMapping注解或其他相关注解来定义请求映射,指定处理请求的URL路径和请求方法。

  3. 实现请求处理方法:在Controller类中,编写处理具体请求的方法。可以使用@RequestMapping注解指定方法的请求路径和请求方法,以及其他相关注解来处理请求参数、数据绑定等。

  4. 调用服务层:在Controller方法中,可以调用Ruoyi项目中定义的服务层(Service)来处理业务逻辑。可以使用@Autowired注解将服务层的实例注入到Controller中。

  5. 返回视图或数据:在处理完请求后,根据需要返回视图或数据给客户端。可以使用ModelAndView对象、@ResponseBody注解等来返回视图或数据。

  6. 配置视图解析器:在application.properties或其他Spring配置文件中配置视图解析器,用于解析并渲染视图。

  7. 配置请求处理器:在application.properties或其他Spring配置文件中配置请求处理器,例如配置请求的字符编码、请求路径匹配规则等。

  8. 配置组件扫描:在Spring的配置文件中配置组件扫描,确保Ruoyi能够扫描到Controller类和其他相关组件。

ruoyi中使用Spring MVC实际案例

@RestController注解:这个注解是Spring MVC中的一个特殊注解,结合了@Controller@ResponseBody两个注解的功能。它表示该类是一个控制器,用于处理请求并生成响应。

Spring MVC 框架会在HTTP 请求到来时,寻找匹配URI 映射处理函数

Logo

快速构建 Web 应用程序

更多推荐