文章目录
Spring IOC、DI、MVC
IOC
IOC(Inversion of Control–控制反转),是一种设计思想,是Spring的核心。
- 控制: IOC容器控制对象,主要控制了外部资源获取(不只是对象包括文件等)
- 反转:由对象主动去找转为由容器进行查找以及注入依赖对象,对象只是被动的接受依赖对象。
DI
DI(Dependency Injection–依赖注入),由容器动态的将某个依赖关系注入到组件中。为了提升组件重用的频率,为系统搭建一个灵活、可扩展的平台。
- 程序依赖于IOC容器
- 程序需要IOC容器来提供对象需要的外部资源
- IOC容器注入程序某个对象
- 注入了某个对象所需要的外部资源(包括对象、资源、常量数据)
IOC和DI理解来源于Acrash
MVC
MVC(Model-view-controller),一种软件架构模式,把软件系统分为三个基本部分:模型,视图和控制器
- 模型(Model):数据模型,提供需要展示的数据,现在分开来形成 value object(数据dao)和服务层(service),提供了模型数据查询和模型数据状态更新
- 视图(View):用户界面,负责模型的展示
- 控制器(controller): 接收用户请求,委托给模型进行处理,处理完毕后将返回的模型数据返回给视图
注解使用
- 注册Controller
1.@Controller:用于标识控制器的注解。用于处理HTTP请求并返回响应结果
2.@RestController:标识一个类为SpringMVC的Rest风格的控制器。该注解的类中的所有方法以Json或xml形式返回响应结果 - 注册HTTP 请求处理函数
1.@RequestMapping:用于指定控制器处理的请求路径,用在类级别和方法级别,在方法上可通过method指定请求方法(GET,POST,DELETE,PUT)。在类中这个前缀会被应用到类中的所有处理请求方法上。
2.GetMapping:用于映射get请求到控制器方法
3.PostMapping:用于映射post请求到控制器方法
4.PutMapping:用于映射put请求到控制器方法
5.DeleteMapping:用于映射delete请求到控制器方法 - HTTP 请求参数和返回参数
1.@RequestParam:将请求参数绑定到控制器方法的参数上
2.@PathVariable:将url中的一部分作为控制器方法的参数。即url中?后面的内容
3.@RequestBody:将请求体(Json)的内容绑定到控制器方法的参数上
4.@ResponseBody:将控制器方法的返回值(Json)直接写入http响应体中 - 注册Service
1.@Service:该注解的类为Service类,会被自动注入到Spring容器中
ruoyi–Spring IOC、DI 进行对象创建和注入
@Component+@Autowired
- 注册Bean并装配到Spring容器中:@Component
@Component 将该类标记为一个组件,Spring会自动扫描该类,并将其实例化为一个Bean,可在其他地方通过依赖注入的方式使用
- 在CommonController类中注入Bean:@Autowired
@Autowired 是Spring对组件自动装配的一种方式。用于在一个组件中引入其他组件
默认按照类型装配Bean,需要用到名称装配时需要添加@Qualifier注解指定name属性告诉容器加载哪个Bean
- 使用
(@Configuration+@Bean)+@Resource
- 注册Bean,指定name并装配到Spring容器中:@Configuration+@Bean
@Configuration 注解加在类上相当于让类的功能等同于一个bean.xml配置文件。
@Bean 类似于bean.xml配置文件中的bean元素,在spring容器中注册一个bean。用在方法上的@Bean表示通过方法来定义一个Bean,通过name可指定注入到容器中的对象id(默认是方法名)。
- 在CaptchaController类中注入Bean:@Resource
@Resource 装配Bean。默认按照名字装配Bean,即按照name属性的值找到具有相同id的Bean并注入。如果没有name属性,则根据被注入的属性的名字进行Bean装配
- 使用
ruoyi-Spring MVC
注册Controller
注册处理函数
使用Controller
Spring MVC 框架会在前端发送HTTP 请求时,寻找匹配URI 映射处理函数
ruoyi-Springboot环境启动
@SpringBootApplication:核心注解。表明是个启动类注解。其中 DataSourceAutoConfiguration.class默认会自动配置但数据源,通过exclude 属性是为了排除自动注入数据源配置,使用多数据源进行配置
SpringApplication.run()方法:启动Spring运行环境。在对象初始化时保存事务监听器,容器初始化、创建、加载,web应用的判断,保存包含main方法的主配置类。
@SpringBootApplication注解详情
@SpringBootConfiguration: 与Spring中的@Configuration的作用基本一致,只不过这个注解是Springboot的注解
@EnableAutoConfiguration: 自动装配,内部还有@AutoConfigurationPackage注解(自动扫描包)和@Import注解(导入配置类或一些需要前置加载的类)
@ComponentScan:用于批量注册Bean。这个注解会让Spring扫描某些包及其子包中所有的类,然后将满足条件的类作为bean注册到spring容器中。重点