Springboot-Day2

1. 控制层(Controller Layer)

  • 职责:负责接收用户的请求,并调用业务逻辑层(Service Layer)来处理这些请求。控制层通常不直接处理业务逻辑,而是作为用户和应用程序之间的桥梁,将用户的请求转发给相应的服务层组件,并将服务层返回的结果以适当的格式(如HTML、JSON等)返回给用户。
  • 技术实现:在Spring Boot中,控制层通常通过@RestController@Controller注解来标识,并使用@RequestMapping@GetMapping@PostMapping等注解来定义请求映射和请求处理方法。

2. 业务逻辑层(Service Layer)

  • 职责:负责处理应用程序的业务逻辑。业务逻辑层接收来自控制层的请求,并根据业务需求调用数据访问层(DAO Layer)来获取或修改数据,最后返回处理结果给控制层。业务逻辑层还可以实现一些复杂的业务规则、事务管理等。
  • 技术实现:在Spring Boot中,业务逻辑层的组件通常是一个或多个服务类,这些类通过@Service注解来标识。服务类可以包含多个业务方法,这些方法接收来自控制层的参数,执行相应的业务逻辑,并调用数据访问层来访问数据库。

3. 数据访问层(DAO Layer/Repository Layer)

  • 职责:负责与数据库进行交互,执行数据的增删改查(CRUD)操作。数据访问层封装了所有与数据库交互的细节,为业务逻辑层提供了访问数据库的接口。
  • 技术实现:在Spring Boot中,数据访问层可以通过多种方式实现,如使用JPA(Java Persistence API)的@Repository注解来标识一个持久化层的接口或类,或者使用MyBatis等ORM(Object-Relational Mapping)框架来映射SQL语句和Java对象。此外,Spring Data JPA和Spring Data MongoDB等Spring Data项目也提供了更高级别的数据访问抽象,可以进一步简化数据访问层的开发。

分层解耦

分层解耦是指将系统划分为不同的逻辑层次(如控制层、业务逻辑层和数据访问层),并确保层次之间的依赖关系尽可能松散。这样做的好处包括提高系统的可维护性、可扩展性和可测试性。通过定义清晰的接口和依赖关系,可以更容易地替换或更新某个层次的实现,而不会对其他层次产生太大的影响。

1.控制反转(IoC)

控制反转是一种设计原则,用于减少代码间的耦合度。在传统的程序中,程序的流程是由代码在内部调用决定的。而在IoC中,控制权被转移到了一个外部实体(如Spring容器)中。这个外部实体负责对象的生命周期和对象之间的依赖关系。当需要使用某个对象时,不是直接从代码中去new一个对象,而是从外部容器(如Spring的ApplicationContext)中获取一个已经配置好的对象实例。

2.依赖注入(DI)

依赖注入是IoC的一种实现方式。在DI中,对象之间的依赖关系不是由对象本身创建的,而是由外部容器在运行时动态地将依赖关系注入到对象中。这通常是通过构造函数、Setter方法或接口注入等方式实现的。依赖注入的好处包括:

  • 降低耦合度:对象不需要知道如何创建其依赖项,只需要知道如何使用它们。
  • 提高可测试性:可以更容易地为对象创建模拟(mock)或存根(stub)依赖项,以便进行单元测试。
  • 提高灵活性:可以更容易地更改依赖项的实现,而无需修改使用这些依赖项的代码。

3.Bean对象

在Spring框架中,Bean是一个被Spring容器管理的对象。Spring容器负责创建Bean的实例、管理Bean的生命周期,并将Bean的依赖关系注入到Bean中。Bean可以是任何Java类,只要它被Spring容器管理。在Spring配置文件中或通过注解(如@Component@Service@Repository等)声明的类都会被Spring容器识别为Bean。

Spring容器通过读取配置信息(如XML配置文件、注解或Java配置类)来创建和管理Bean。当应用程序启动时,Spring容器会扫描这些配置信息,并根据配置信息创建Bean的实例,然后将这些实例存储在容器中。当应用程序中的其他部分需要使用这些Bean时,可以通过依赖注入的方式从容器中获取它们的实例。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值