style changed

This commit is contained in:
many2many 2024-11-10 13:11:42 +08:00
parent 4069a35a38
commit bcdd78d124

View File

@ -14,25 +14,25 @@ Spring Boot应用的层次结构
在前后端完全分离的情况下Spring Boot的表现层的实现主要涉及如下内容 在前后端完全分离的情况下Spring Boot的表现层的实现主要涉及如下内容
**RESTful API** RESTful API
> 使用`@RestController`注解的控制器类来处理HTTP请求返回JSON格式的数据。这些API通常用于与前端JavaScript框架如React、Vue.js或Angular交互。 > 使用`@RestController`注解的控制器类来处理HTTP请求返回JSON格式的数据。这些API通常用于与前端JavaScript框架如React、Vue.js或Angular交互。
**跨域资源共享CORS** 跨域资源共享CORS**
> 为了支持前端应用从不同的域名发送请求需要在Spring Boot应用中配置CORS。可以通过在控制器方法上使用`@CrossOrigin`注解或者全局配置CORS来实现。 > 为了支持前端应用从不同的域名发送请求需要在Spring Boot应用中配置CORS。可以通过在控制器方法上使用`@CrossOrigin`注解或者全局配置CORS来实现。
**身份验证和授权** 身份验证和授权:
> 使用Spring Security来处理用户身份验证和授权。Spring Security提供了多种方式来保护RESTful API包括基于表单的登录、JWTJSON Web Tokens、OAuth2等。 > 使用Spring Security来处理用户身份验证和授权。Spring Security提供了多种方式来保护RESTful API包括基于表单的登录、JWTJSON Web Tokens、OAuth2等。
**异常处理** 异常处理:
> 使用`@ControllerAdvice`和`@ExceptionHandler`注解来全局处理异常确保API返回统一的错误信息格式。 > 使用`@ControllerAdvice`和`@ExceptionHandler`注解来全局处理异常确保API返回统一的错误信息格式。
**请求和响应拦截** 请求和响应拦截:
> 使用`HandlerInterceptor`或`Filter`来拦截请求和响应,可以用于日志记录、性能监控、请求校验等。 > 使用`HandlerInterceptor`或`Filter`来拦截请求和响应,可以用于日志记录、性能监控、请求校验等。
**静态资源处理** 静态资源处理:
> Spring Boot默认支持静态资源的处理可以将HTML、CSS、JavaScript等文件放在`src/main/resources/static`目录下Spring Boot会自动配置好静态资源的访问路径。 > Spring Boot默认支持静态资源的处理可以将HTML、CSS、JavaScript等文件放在`src/main/resources/static`目录下Spring Boot会自动配置好静态资源的访问路径。
**模板引擎** 模板引擎:
> 尽管在前后端分离的架构中不常用但Spring Boot仍然支持模板引擎如Thymeleaf、FreeMarker等用于渲染HTML页面。 > 尽管在前后端分离的架构中不常用但Spring Boot仍然支持模板引擎如Thymeleaf、FreeMarker等用于渲染HTML页面。
@ -40,77 +40,77 @@ Spring Boot应用的层次结构
业务层包含所有的业务逻辑。在spring boot应用中在Spring Boot应用中业务层也称为服务层或应用层的实现主要涉及以下几个方面 业务层包含所有的业务逻辑。在spring boot应用中在Spring Boot应用中业务层也称为服务层或应用层的实现主要涉及以下几个方面
**服务类Service Classes** 服务类Service Classes
> 这些类包含实现业务逻辑的方法,它们通常作为领域模型(即实体层)和控制器(表现层)之间的中介。 > 这些类包含实现业务逻辑的方法,它们通常作为领域模型(即实体层)和控制器(表现层)之间的中介。
**业务逻辑封装** 业务逻辑封装:
> 业务层负责封装核心业务逻辑,确保业务规则的一致性和正确性,以及数据的完整性。 > 业务层负责封装核心业务逻辑,确保业务规则的一致性和正确性,以及数据的完整性。
**验证Validation** 验证Validation
> 业务层负责对输入数据进行验证确保它们符合业务规则和约束。这通常通过使用JSR 303/JSR 380注解如`@NotNull`、`@Size`、`@Valid`等)来实现。 > 业务层负责对输入数据进行验证确保它们符合业务规则和约束。这通常通过使用JSR 303/JSR 380注解如`@NotNull`、`@Size`、`@Valid`等)来实现。
**授权Authorization** 授权Authorization
> 在业务层中,可以进行更细粒度的授权检查,以确保用户只能访问他们被授权的资源或执行他们被授权的操作。 > 在业务层中,可以进行更细粒度的授权检查,以确保用户只能访问他们被授权的资源或执行他们被授权的操作。
**事务管理Transaction Management** 事务管理Transaction Management
> 业务层常常涉及到数据库事务的管理Spring Boot通过声明式事务管理使用`@Transactional`注解)来简化事务的控制。 > 业务层常常涉及到数据库事务的管理Spring Boot通过声明式事务管理使用`@Transactional`注解)来简化事务的控制。
**异常处理** 异常处理:
> 业务层需要处理业务逻辑中可能发生的异常,并将其转换为对用户更友好的错误信息或业务异常。 > 业务层需要处理业务逻辑中可能发生的异常,并将其转换为对用户更友好的错误信息或业务异常。
**业务流程协调** 业务流程协调:
> 业务层负责协调多个业务操作的执行顺序,实现复杂的业务流程。 > 业务层负责协调多个业务操作的执行顺序,实现复杂的业务流程。
**数据转换** 数据转换:
> 业务层可能需要将领域模型Domain Models转换为DTOsData Transfer Objects以适配前端的数据需求。 > 业务层可能需要将领域模型Domain Models转换为DTOsData Transfer Objects以适配前端的数据需求。
**集成外部服务** 集成外部服务:
> 业务层可以集成和调用外部服务或API如支付网关、邮件服务、第三方数据接口等。 > 业务层可以集成和调用外部服务或API如支付网关、邮件服务、第三方数据接口等。
**业务决策** 业务决策:
> 业务层包含业务决策逻辑,这些逻辑基于业务规则和策略来指导应用程序的行为。 > 业务层包含业务决策逻辑,这些逻辑基于业务规则和策略来指导应用程序的行为。
**缓存管理** 缓存管理:
> 业务层可以负责缓存策略的实现,以提高应用程序的性能。 > 业务层可以负责缓存策略的实现,以提高应用程序的性能。
**异步处理** 异步处理:
> 对于耗时的业务操作业务层可以实现异步处理机制如使用Spring的`@Async`注解。 > 对于耗时的业务操作业务层可以实现异步处理机制如使用Spring的`@Async`注解。
**消息队列** 消息队列:
> 业务层可以与消息队列如RabbitMQ、Kafka集成以实现异步消息传递和处理。 > 业务层可以与消息队列如RabbitMQ、Kafka集成以实现异步消息传递和处理。
#### 持久层 #### 持久层
持久层包含所有的数据库存储逻辑。它负责将业务对象转换为数据库行反之亦然。在Spring Boot应用中持久层的实现主要涉及以下几个方面 持久层包含所有的数据库存储逻辑。它负责将业务对象转换为数据库行反之亦然。在Spring Boot应用中持久层的实现主要涉及以下几个方面
**数据访问对象DAO** 数据访问对象DAO
> DAO负责与数据库进行交互执行CRUD操作。通常使用`@Repository`注解来标记DAO类。 > DAO负责与数据库进行交互执行CRUD操作。通常使用`@Repository`注解来标记DAO类。
**实体类** 实体类
> 数据库实体类是持久层与数据库交互的桥梁。它们定义了数据库中的表和字段并映射为Java对象。 > 数据库实体类是持久层与数据库交互的桥梁。它们定义了数据库中的表和字段并映射为Java对象。
**ORM框架** ORM框架
> Spring Boot支持多种ORM框架如JPA、Hibernate、MyBatis等。这些框架可以帮助开发者更方便地进行对象关系映射。 > Spring Boot支持多种ORM框架如JPA、Hibernate、MyBatis等。这些框架可以帮助开发者更方便地进行对象关系映射。
**数据转换** 数据转换:
> 持久层可能需要将实体对象转换为数据库行反之亦然。ORM框架通常会自动处理这些转换但有时也需要手动编写转换逻辑。 > 持久层可能需要将实体对象转换为数据库行反之亦然。ORM框架通常会自动处理这些转换但有时也需要手动编写转换逻辑。
**查询优化** 查询优化:
> 持久层需要关注查询性能,可以通过索引优化、查询缓存、批量操作等方式来提高查询效率。 > 持久层需要关注查询性能,可以通过索引优化、查询缓存、批量操作等方式来提高查询效率。
### 数据库层 ### 数据库层
数据库层包含所有类型的数据库如MySQL、MongoDB等。在Spring Boot应用中数据库层的实现主要涉及以下几个方面 数据库层包含所有类型的数据库如MySQL、MongoDB等。在Spring Boot应用中数据库层的实现主要涉及以下几个方面
**数据库选择** 数据库选择:
> 根据应用的需求选择合适的数据库如关系型数据库MySQL、PostgreSQL或NoSQL数据库MongoDB、Cassandra > 根据应用的需求选择合适的数据库如关系型数据库MySQL、PostgreSQL或NoSQL数据库MongoDB、Cassandra
**数据模型设计** 数据模型设计:
> 设计合理的数据模型,包括表结构、索引、外键等,以满足业务需求并优化查询性能。 > 设计合理的数据模型,包括表结构、索引、外键等,以满足业务需求并优化查询性能。
**数据迁移** 数据迁移:
> 使用Flyway或Liquibase等工具进行数据库迁移确保数据库结构的一致性和版本控制。 > 使用Flyway或Liquibase等工具进行数据库迁移确保数据库结构的一致性和版本控制。
**备份和恢复** 备份和恢复:
> 定期备份数据库,确保数据的安全性。在发生故障时,可以快速恢复数据。 > 定期备份数据库,确保数据的安全性。在发生故障时,可以快速恢复数据。
#### 流程架构 #### 流程架构