spring mvc整合mybatis 为什么不把mapper接口类直接注入Controller呢

spring mvc整合mybatis 为什么不把mapper接口类直接注入Controller呢?

正常开发如下:
1、mapper.xml,mapper接口类,service接口,serviceImpl实现类,Controller控制类
2、serviceImpl实现类注入mapper接口类,在Controller控制类中注入service接口

问题1、为什么不直接把mapper接口类注入到Controller控制类中应用呢?

问题2:或者设计一个公用执行方法类,该类实现applicationContextAware接口,然后直接在spring容器中获取已经实例化的mapper接口,通过反射原理执行该接口的某个指定方法。最后在controller类中的方法里直接调用该类执行由前端传进来的方法名

请问各位大神这两种情况有什么影响呢?

为了业务逻辑分离,便于后期维护,不然Controller里面就会写很多逻辑的东西太乱,也不便于后期维护

这两个方法肯定都是可以实现功能的。但是你想。你这么写不都把代码都写在Controller了?你想想,我们在serviceImpl里执行增删改查时,不 是一般还要
对数据进行各种检验么?或者还有对数据进行各种转换。你如果不这么写,都写在Controller,那你的Controller的代码那得要多少啊?而且写起来肯定也
很乱。

https://stackoverflow.com/questions/17349087/why-interface-is-injected-instead-of-class-in-spring-mvc#:~:text=When%20your%20code%20is%20dependent,that%20makes%20use%20of%20interface.
有种说法 是说 为了 解耦