欢迎来到安国润的个人网站

一、SpringBoot 完整介绍(背景+解决问题+架构+作用&关联)

返回列表

一、SpringBoot 完整介绍(背景+解决问题+架构+作用&关联)

1. 诞生背景

早期原生Spring框架开发Web项目,存在大量XML配置文件:Bean注册、数据库连接、事务、视图解析、组件扫描全都需要手动XML编写; 多依赖需要手动匹配兼容版本,Tomcat等容器需要单独安装部署;项目启动、测试、运维配置极其繁琐,重复配置多,开发效率极低。为简化Spring使用,推出SpringBoot。

2. 核心解决的痛点

  1. 消除大量XML配置,注解驱动开发;
  2. 提供starter起步依赖,自动管理依赖版本,解决版本冲突;
  3. 内置Tomcat/Jetty,不用单独部署Web容器;
  4. 自动装配组件(数据源、MyBatis、MVC等),根据jar包自动初始化;
  5. 简化打包、运维,jar包一键启动,适配服务器、容器部署。

3. 基本架构分层(本项目三层结构)

  1. 启动层(ScreenApp):项目入口,加载全局配置、数据源、MyBatis规则、扫描所有组件;
  2. 控制层(ScreenController):接收前端http请求,接收参数、调用数据层、返回JSON;
  3. 数据访问层(MarketMapper):对接MySQL,执行SQL查询,提供数据给Controller。

4. 核心作用

  1. 搭建Java后端Web服务,对外提供RESTful接口;
  2. 管理整个项目所有Bean对象,自动完成依赖注入;
  3. 统一管理MySQL数据源连接;
  4. 整合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. 核心解决的痛点

  1. 省去原生JDBC重复连接、释放资源、手动封装实体代码;
  2. SQL与Java代码分离(注解/XML两种方式),SQL独立便于DBA优化;
  3. 自动实现数据库下划线字段与Java驼峰属性映射;
  4. 自动将查询结果封装成Map/实体类,无需手动遍历ResultSet;
  5. 轻量无侵入,兼容所有JDBC数据库。

3. 项目架构(注解版MyBatis)

  1. Mapper接口(MarketMapper):使用@Mapper+@Select注解,直接编写SQL;
  2. SpringBoot自动代理:启动时自动生成接口实现类,不用手写DAO实现;
  3. 结果自动映射:开启下划线转驼峰,数据库字段自动匹配返回Map键名。

4. 核心作用

  1. 作为Java程序与MySQL中间层,执行查询、增删改SQL;
  2. 简化数据库交互代码,不用写原生JDBC模板代码;
  3. 适配大屏多维度指标查询(指标卡片、饼图、涨跌、折线数据)。

5. 和其他组件的关系

  • 与SpringBoot:依赖SpringBoot提供数据源、自动扫描Mapper、管理数据库连接池;
  • 与MySQL:直接操作test2库中ads系列指标表;
  • 与Controller:Mapper被注入Controller,接口接收请求后调用Mapper拿数据;
  • 大数据链路:Sqoop把Hive ADS数据落地MySQL,MyBatis读取库内数据供大屏展示。