0
点赞
收藏
分享

微信扫一扫

后端之分层解耦2

耦合

之前的代码因为要在controller层创建一个service的对象,service层也要建立dao对象,说明两个层之间存在耦合。而软件设计需要高内聚低耦合

后端之分层解耦2_解决方法

解决方法:创建一个容器,把service对象放进去,controller层调用时,从容器中找。

后端之分层解耦2_高内聚_02

IOC&DI流程介绍

在Service和dao的实现类加上@Component,实现控制反转

@Component//将当前类交给IOC容器管理,称为IOC容器中的Bean

第二步,在controller层添加@Autowired,完成依赖注入

@Autowired//运行时,IOC容器会自动注入EmpServiceA
private EmpService empService ;

在service层同样添加@Autowired

这时不需要添加

= new EmpServiceA()

控制层会在容器内自己寻找带有@Component的实现类。

IOC详解

后端之分层解耦2_软件设计_03

下面三个是用用于三个层的,第一个可以用于不属于这三个层的工具类,

但是@Controller不会用在控制层,因为控制层@RestController包括@Controller和@ResponseBody。

后端之分层解耦2_高内聚_04

DI详解

有多个@Autowired时

后端之分层解耦2_解决方法_05

1.@Primary,谁加上,谁就优先。

23.@Qualifier和@Resourse都是加上bean的名字来确定优先。

举报

相关推荐

0 条评论