智能相册系统采用了多层架构设计,具体包括前端客户端层、控制器层、服务层、数据访问层和数据存储层,此外集成了python写的外部AI服务。
这种分层架构有利于代码的组织和维护,同时保证了系统的可扩展性和灵活性。这也是java前后端开发的经典架构设计。
前端客户端层负责与用户进行交互,通过接入后端的接口,将用户操作转换为对后端API的调用。
控制器层是系统的入口点,负责接收和响应HTTP请求,包含了大部分数据库中数据表的实体的接口。
此外:控制器层使用JWT进行身份验证,并通过ThreadLocal存储用户信息,实现请求上下文的传递。
服务层包含业务逻辑,为控制器层提供具体的方法。
数据访问层负责与数据库的交互,项目使用MyBatis-Plus框架简化数据库操作。
系统使用PostgreSQL数据库存储结构化数据,数据模型设计见album.sql文件。
系统集成了基于Flask的Python AI服务,通过网址访问调用接口,用于ai识别,照片到视频的转换,视频字幕添加等内容。
结果通过各层传回给前端展示