Spring的依赖注入 和MVC和AOP

本文深入探讨了Spring框架中的依赖注入,解释了MVC设计思想及其在后端开发中的应用,介绍了三层代码结构以提高代码扩展性,并总结了IOC和DI的概念。此外,还详细讨论了Spring的AOP在事务管理中的作用,以及代理模式和JDK动态代理在解决耦合问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring的依赖注入

依赖注入的案例

 定义一个Pet接口

定义一个Dog类

编辑User类

编辑配置类

 

编辑测试类

 

MVC设计思想

传统代码结构

  说明:如果将所有的业务代码都写到一个方法中,则导致后期维护耦合性高,为了提高程序的扩展性.将程序按照,MVC设计思想进行管理

MVC设计思想说明

M:Moderl  数据层

V:View 视图层

C: Control 控制层

总结:MVC主要的目的降低代码的耦合性,提高扩展性,方便后续开发

三层代码结构

 说明:基于MVC设计思想的启发,在后端为了提高代码的扩展性,一般后端代码分为三层

  分层 :

      1, Controller层  主要与页面进行交互;                  @Controller

     2,Service层      主要实现后端的业务逻辑;                @Service

    3,Dao层/Mapper层 主要与数据进行交互 也把他称之为"持久层"  @Repository/@Mapper

"三层"代码结构实现

代码结构说明

包名:mapper  类2个:  一个接口 UserMapper/一个实现类UserMapperlmpl

包名: service 类2个   一个接口UserService/一个实现类UserServicelmpl

包名: controller 一个类:UserController

知识说明: 被调用的一般会有接口和实现类

先写mapper 类,再写service 再写controller

配置类:

 

持久层二个类: 接口和实现类

 

 业务逻辑层:二个类,接口和实现类

 

控制层: 

 测试类:

 

 

@Value注解

关于IOC -DI总结

什么是IOC: 控制反转,将对象交给Spring容器管理由容器管理对象的生命周期

什么是ID :  依赖注入 (注入的对象) 为当前的对象注入属性(属性也是对象)

扩展问题:如果采用配置文件xml的方式 进行注入,则注入的方法有多种;  1,set方式注入  2,构造方法注入   3,工厂模式注入

 总结: 使用IOC-DI可以极大程度上实现代码的松耦合

Spring-AOP

业务说明:

事务特性 :1,原子性 2,一致性,3隔离性 4,持久性

业务说明: 在增/删/修改的找找过程中添加事务控制

 

结论: 

1,如果按照上述的代码进行编辑,则所有增/删除/修改操作的代码都必须按照上述的规则.那么代码冗余

2,UserService与事务控制代码紧紧的耦合在一起,不方便后期扩展,以后尽可能保证业务的纯粹性

关于代理模式说明

说明:在业务层不方便做,但是又不得不做的事情可以放到代理对象中,通过这样的设计就可以解决业务层耦合问题代理对象看起来和真实的对象一模一样 所以用户使用不会察觉

动态代理 ---JDK动态代理

 

 

业务代码测试

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值