一、SpringBoot 完整介绍(背景+解决问题+架构+作用&关联)
1. 诞生背景
早期原生Spring框架开发Web项目,存在大量XML配置文件:Bean注册、数据库连接、事务、视图解析、组件扫描全都需要手动XML编写; 多依赖需要手动匹配兼容版本,Tomcat等容器需要单独安装部署;项目启动、测试、运维配置极其繁琐,重复配置多,开发效率极低。为简化Spring使用,推出SpringBoot。
2. 核心解决的痛点
- 消除大量XML配置,注解驱动开发;
- 提供starter起步依赖,自动管理依赖版本,解决版本冲突;
- 内置Tomcat/Jetty,不用单独部署Web容器;
- 自动装配组件(数据源、MyBatis、MVC等),根据jar包自动初始化;
- 简化打包、运维,jar包一键启动,适配服务器、容器部署。
3. 基本架构分层(本项目三层结构)
- 启动层(ScreenApp):项目入口,加载全局配置、数据源、MyBatis规则、扫描所有组件;
- 控制层(ScreenController):接收前端http请求,接收参数、调用数据层、返回JSON;
- 数据访问层(MarketMapper):对接MySQL,执行SQL查询,提供数据给Controller。
4. 核心作用
- 搭建Java后端Web服务,对外提供RESTful接口;
- 管理整个项目所有Bean对象,自动完成依赖注入;
- 统一管理MySQL数据源连接;
- 整合MyBatis、Vue、ECharts,打通「前端可视化 ↔ MySQL指标库」链路。
5. 和其他组件的关系
- 与MyBatis:SpringBoot提供数据源、自动扫描Mapper,托管MyBatis所有对象;
- 与前端Vue/ECharts:后端提供API接口,前端axios调用接口获取图表JSON数据;
- 与MySQL:SpringBoot配置JDBC连接,通过MyBatis操作库表;
- 大数据链路关联:Hive计算ADS指标 → Sqoop导出MySQL → SpringBoot读取给大屏展示。
二、MyBatis 完整介绍(背景+解决问题+架构+作用&关联)
1. 诞生背景
早期Java操作数据库有两种方式: 1. JDBC原生:大量重复代码(创建连接、Statement、手动封装结果集、关闭资源),代码冗余; 2. 全自动化ORM(Hibernate):SQL完全封装,复杂统计、多表查询难以优化,性能差; MyBatis折中出现:半自动ORM,SQL由开发者自主编写,兼顾灵活与简化开发。
2. 核心解决的痛点
- 省去原生JDBC重复连接、释放资源、手动封装实体代码;
- SQL与Java代码分离(注解/XML两种方式),SQL独立便于DBA优化;
- 自动实现数据库下划线字段与Java驼峰属性映射;
- 自动将查询结果封装成Map/实体类,无需手动遍历ResultSet;
- 轻量无侵入,兼容所有JDBC数据库。
3. 项目架构(注解版MyBatis)
- Mapper接口(MarketMapper):使用
@Mapper+@Select注解,直接编写SQL; - SpringBoot自动代理:启动时自动生成接口实现类,不用手写DAO实现;
- 结果自动映射:开启下划线转驼峰,数据库字段自动匹配返回Map键名。
4. 核心作用
- 作为Java程序与MySQL中间层,执行查询、增删改SQL;
- 简化数据库交互代码,不用写原生JDBC模板代码;
- 适配大屏多维度指标查询(指标卡片、饼图、涨跌、折线数据)。
5. 和其他组件的关系
- 与SpringBoot:依赖SpringBoot提供数据源、自动扫描Mapper、管理数据库连接池;
- 与MySQL:直接操作test2库中ads系列指标表;
- 与Controller:Mapper被注入Controller,接口接收请求后调用Mapper拿数据;
- 大数据链路:Sqoop把Hive ADS数据落地MySQL,MyBatis读取库内数据供大屏展示。