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动态代理
业务代码测试