# 资产系统后端项目 工程简介 --- 项目架构: demo-api:为后端与后端交互而提供的接口服务。 demo-dao:后端与数据库直接交互的地方。 demo-manager:代码管理层。 demo-service:复杂业务层。 demo-web:为前端提供接口。 start:启动和测试使用。 --- demo-manager 是一个代码管理层,主要负责项目中的业务逻辑、事务管理等方面的业务处理,它一般是在 demo-dao 和 demo-service 层之间。 在 demo-manager 层中,你可以使用 demo-service 层提供的服务进行业务逻辑的编写,同时还可以处理一些业务上的事务。使用事务的好处是可以保证在整个业务操作过程的任何阶段出现异常时,可以回滚到最初的状态,保证数据的一致性和完整性。 demo-manager 层不应该处理任何与数据读写无关的业务逻辑,这样可以保证业务逻辑的聚焦性和易于测试。它只负责处理业务逻辑相关的操作,例如查询操作时的组装数据、数据过滤等。 --- 数据类型转换的操作一般应该放在服务层(demo-service)中,因为服务层位于业务逻辑处理的最上层,处理的是复杂业务,需要将不同的数据类型进行转换以便完成业务逻辑的处理。同时,服务层也是各个数据层(如demo-dao)之间调用的桥梁,能够统一处理各数据层的数据类型转换,避免业务逻辑掺杂过多的数据类型判断代码,提高代码的可维护性和可读性 ### 实现登录认证的步骤: 1. 首先从`UsernamePasswordAuthenticationFilter`入手,先重写这个过滤器,用来获取请求的信息,并将其封装到UserDetails,接着通过authenticate方法传入到authenticateManager中进行下一步的操作。 2. 接着重写``BasicAuthenticationFilter `` 这个过滤器,作为token的校验。 # 延伸阅读 项目部署: 环境: [Maven下载地址](https://repo.huaweicloud.com/apache/maven/maven-3/3.8.8/source/) 打开IDEA工具设置一下Maven的Thread 为3C 这样就能够更快的编译项目。 下载好了Maven 在setting 中配置仓库: ```html aliyunmaven * 阿里云公共仓库 https://maven.aliyun.com/repository/public ``` ## 拦截和过滤 在spring boot 中都知道有一个拦截和一个过滤以及一个AOP 。 但他们之间的所执行的顺序是不同的,从某种角度上他们之间都有一个共同点。就是可以实现拦截或穿插的某个地方,来达到我们想要的目的。 这使得我们在开发中可以很方便的获取到相关的数据。 他们之间的流程如下图所示: ![拦截、过滤、AOP流程图](https://img2022.cnblogs.com/blog/1401949/202204/1401949-20220414161645657-1831824836.png) 请求进入是首先进入到过滤中,随后依次逐层进入。当碰到异常之后则是由内而外的抛出。