前言
对于一个公司的大数据部门来说,为外部提供接口查询服务,开发一些简单的数据产品是必不可少的。
而开发接口查询服务、数据产品肯定绕不过Spring技术栈。
本文主要讨论下,作为一个大数据平台开发工程师在学习Spring技术栈的过程中可能需要的资料。
学习重点是Model层
我之前在数据采集、图数据库、金融风控等项目中都或多或少的使用过Spring Boot开发过接口。对于大数据背景的工程师,我认为学习SpringBoot的重点应该放在Spring Data、MyBatis这一model层上。
首先说大数据中最常见的结构化数据。
因为大数据在查询这方面肯定是通过Impala、Presto等查询引擎来查询Kudu、Hive等存储介质。这种结构化数据的查询一般都是通过写sql的方式进行查询,与一般Java Web开发的流程差不太多,都是通过JDBC的形式访问数据,因此应重点学习Mybatis这个框架。但是Presto、Impala这类SQL引擎要比Mysql重型的多,除非你是在构建类似于查询平台、大数据分析平台这类基于OPAL的应用,否则不建议直接使用大数据这类的SQL引擎。
再说半结构化和非结构化数据。
对于传统行业这部分数据可能不是很多。但是一般来讲,对于ToB端的互联网金融公司,一些网页数据,文档数据还是有的。
比如,半结构化的数据一般都是MongoDB中爬虫抓取的数据、JanusGraph/Neo4j等图数据、或是ES/Solr中的日志数据。非结构化数据可能包括存储在Solr中的一些文档数据。半结构化和非结构化数据也是大数据需要清洗、处理的数据。那么这部分数据如果需要通过接口的形式进行检索或访问,可以使用Spring Data。
Spring与Spring MVC
而我在学习Spring Boot的过程中,发现最难理解的倒不是Mybatis,Spring Data,而是各类注解与注入,以及他们背后大概的原理。
因此我认为我们在初步能使用Spring Boot构建几个接口后,可以再简单理解下Spring中IOC、AOP、事务等概念,Spring MVC中的重点注解、注解式开发的原理。以下列出了我认为还不错的几个教学视频:
1、Spring5框架中IOC/AOP/JDBCTemplate讲解:https://www.bilibili.com/video/BV1Vf4y127N5
关于IOC的总结我已总结好,可以看这篇
2、Spring MVC框架入门视频:https://www.bilibili.com/video/BV1D7411n7BZ。Spring MVC探秘文章:https://www.iteye.com/blogs/subjects/springmvc-explore
3、Spring Boot视频:https://www.bilibili.com/video/BV1gW411W76m
我目前已经完成了SpringBoot核心篇章的学习与代码,并总结到了我的github仓库中:https://github.com/forrestlmj/Spring-Boot-In-Action/tree/master/springboot_atguigu
对于Mybatis、Spring Data可以看:
1、Mybatis:https://www.bilibili.com/video/BV1bb411A7bD
2、Spring Data:https://www.bilibili.com/video/BV1hW411g7jy
几个视频加起来大概有70个小时,我觉得连看带学至少还要翻个倍,大概200个小时,如果每天辛苦下能拿出3-4个小时看看视频,再实践实践,差不多两个月到三个月可以学完这些教程,相信对于Spring Boot的理解就不再只停留在写接口这一层面,同时在工作中,也能更好的评估技术难度、工作量等。
另外还可以学一下Swagger、Spring Security、JWT这些工具,这些工具对于web开发也是很有帮助的。