三层架构
1. Controller
控制层,接收前端传来的数据,对该数据做出响应
2. Service
业务逻辑层,处理具体的事务逻辑
3.Dao
数据访问层,负责数据的访问操作,包括数据的增删改查。
前端向后端请求的业务流程
web->Controller->Service->Dao
对于前端网页的请求,就是controller调用service,service调用dao,dao层的mapper文件就负责数据的增删改查
分层解耦
1.
内聚:软件中各个功能模块内部的功能关系
耦合:衡量软件中各个层/模块之间的依赖、关联的程度
==高内聚低耦合 ==

在一个类里,又new了另一个类的新对象,即耦合
2.IOC
控制反转:简称IOC,对象的创建控制权由程序转移到外部容器,这种思想为控制反转
要放进容器的类,只需在类的上面添加上@Component,放入后,该类就是容器中的bean
依赖注入:简称DI,容器为应用程序提供运行时,所依赖的资源,简称依赖注入
在容器中取值,使用@Autowired,该注解定义在注入的类上方
bean对象:ioc容器中创建、管理的对象,称之为bean

实现解耦合,首先,@Component将其放入容器中,不用new对象,用@Autowired就可以取值
Bean的申明,即容器注解的衍生
1.@Component:不属于dao/service/controller层的bean对象使用
在使用springboot开发web项目时,控制层的bean只能用controller注解
2.@Controller:用于控制层
3.@Service:用于业务层
4.@Repository:用于dao层
容器对象的扫描
1.在启动类中添加@ComponentScan(“包名”),就能扫描到容器中的对象
1.在启动类中,@SpringBootApplication,默认包含了@ComponentScan,但是它只能扫描到当前类的包,以及当前类的子包中的容器对象
3.DI

Service层中,一个接口有两个实现类时,且两个都添加了@Service注解,容器中对应的Empservice对象就有两个,会报错
解决办法:
1.在需要放进容器的实现类上添加@Primary

2.配合@Autowired使用

3.@Resource,该依赖是由jdk提供

文章介绍了JavaWeb开发中的三层架构,包括Controller控制层、Service业务逻辑层和Dao数据访问层。同时,讨论了内聚和耦合的概念,以及如何通过IOC(控制反转)和DI(依赖注入)来实现解耦合。在Spring框架中,@Component、@Controller、@Service和@Repository注解用于标记不同层的bean对象,而@Primary和@Resource则在处理多个实现类时发挥作用。@SpringBootApplication和@ComponentScan用于扫描和管理容器中的对象。
3916

被折叠的 条评论
为什么被折叠?



