NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

SpringOne 大会采访:Mark Pollack 博士专访

  • 2012-12-10
  • 本文字数:2690 字

    阅读完需:约 9 分钟

SpringOne 大会今年首次落户中国,将会于 12 月 7-8 号在北京召开,大会结合了 Spring 和 Cloud Foundry 大热门技术,将会针对于 Spring 的最新发展、Spring 在移动、大数据领域的应用等做主题分享。InfoQ 就 Spring 以及 Spring Data、Spring Batch 等话题采访到了 Spring 社区专家 Mark Pollack 博士。

InfoQ:欢迎来到北京,我是 InfoQ 中文站的编辑丁雪丰,感谢您接受我们的采访。您能否先为我们的读者做个自我介绍?

Mark:我就职于 SpringSource,它是 VMWare 的子公司,多年以来都在从事 Spring 开源项目相关的工作,早在成立公司支持它以前就是团队的成员了。我做过 JmsTemplate 相关的事情,早期还做过 Spring.NET 项目——这是.NET 版本的 Spring 框架。这些年数据访问技术方面发生了很多变化,大约三年前,我开始围绕 NoSQL、大数据这些方面为大家提供支持,还为关系型数据库添加了更多支持。

InfoQ:您刚提到了 NoSQL 技术,现在有很多数据存储,比如 RDBMS、NoSQL 和 NewSQL。在只有 RDBMS 时,Hibernate 可以应对大部分的问题。现在我们要面对 MongoDB、Redis 还有 Cassandra,Spring 如何让开发者的生活变得更轻松一点呢?

Mark:我们的确为其中一些提供了支持,但不是全部 NoSQL 数据库都有支持,MongoDB 和 Redis 就有支持,Cassandra 目前还不在其列。Spring 从很多方面减轻了开发者的负担。首先,使用 Spring 容器来配置应用程序,通过一致的方式来使用多种技术,在 Spring 早期,你要把 MVC、模版引擎和 Hibernate 结合在一起,就得益于一致的使用方式;NoSQL 数据库和关系型数据库很类似,我们可以用一个通用的配置模型将所有技术整合起来,这只是纯粹的配置方面的。

其次,我们为很多 NoSQL 数据库,还有 Hadoop 提供了很多特定的辅助类,和 JdbcTemplate 很类似,我们提供了 MongoTemplate,能更方便地使用 MongoDB,如果你只是使用标准 API 集合,它同样提供了高层 API,比如把 POJO 映射成文档数据模型,这是基本的值属性方面的。

第三,要创建一个针对 POJO 的数据访问类库,以 MongoTemplate 和 RedisTemplate 为例,能很方便地通过 MongoTempalte 来使用一些特性,比如 MapReduce、累加计数器,后者在 Redis 里也很常用,这都很容易。如果你还想映射 POJO 来做领域层,也就是 Repository 层,我们也提供了一些基础设施,帮你对各种 NoSQL 数据库进行 POJO 的增、删、改、查操作。

InfoQ:在您的演讲中,您提到了 Spring Data、Spring Integration,以及一些 Spring 的子项目,这些项目满足了开发者在大数据时代下的各种日常工作需要。您能否向国内的开发者介绍下 Spring Data 项目,虽然国内 Spring 的应用很广泛,但 Spring Data 还未广为人知。

Mark:我很早就开始参与 Spring Data 项目了,我们的目标是提供熟悉的基于 Spring 的编程模型,涵盖大数据、NoSQL 和关系型数据库。如此一来,需要对 NoSQL 数据源做一个抽象,因此我们有两类支持,一个是一系列的模版类,让你更方便地与下层的 NoSQL 存储进行交互;另一个是 Repository 抽象,让你更方便地编写数据访问层,把 POJO 写到数据存储里。

另一大块内容是大数据,我们有 Spring Hadoop 项目,协助进行与 Hadoop 的交互,在 HDFS 里读写文件。Hadoop 中经常用到 Hadoop 任务,你有一系列顺序执行的任务,Spring Batch 能帮你组织这些任务。

InfoQ:这些项目在国外的使用情况是怎么样的,比如美国和英国,在那里大家都用这些 Spring 子项目么?

Mark:我们一直在持续追踪 Maven 上的下载统计信息,这些项目的下载量都是呈指数级增长的。我最近没有关注,但我认为,Spring Integration 和 Spring Batch 的流行程度比较接近。Spring Data JPA 是最流行的项目,虽然 NoSQL 的讨论很热烈,但企业开发者还是在使用关系型数据库,所以对这个结果我们并未感到太吃惊。我们的 MongoDB 支持、Redis 支持最近也越来越流行了,还有 Neo4j,它们的成长曲线很漂亮,终会和 Spring Integration 和 Spring Batch 一样流行的。

InfoQ:在你看来,Java EE 6 和 Spring 框架是个什么关系?有些人认为 Java EE 6 比 Spring 要好,你是怎么想的?

Mark:Java EE 6 就是一堆 JSR 的集合,它的版本基本就是标明用了哪个版本的 JSR 实现。Spring 通常都会部署在 Java EE 容器里,提供一些容器里没有的功能,举例来说,可以让 Spring 在老的不支持 CDI 的容器里提供依赖注入,很多人都看到了其中的价值。Spring 和 Java EE 6 有很多共同点,比如都实现了 Bean Validation、依赖注入注解等等,的确有很多重复的地方。Spring 最出名的是它的依赖注入,CDI 是 Java EE 6 里的依赖注入规范。我认为依赖注入现在已经是个标配了,我想人们不会从一大堆特性里把它挑出来说事。Spring 给你带来的是更多的灵活性,你可以在 Tomcat 3 里用依赖注入,然后升到 Tomcat 7,不会受限于 Java EE 的版本,不受限于 JSR。

InfoQ:Java 7 已经被广泛使用了,明年 Java 8 很快就要来了,Spring 是否已经为新的 JDK 做好准备了?

Mark:Java 8 很令人振奋,我们对一系列的特性都很感兴趣,比如闭包。我们的目标是成为第一个支持 Java 8 的现代 Java 框架,因此我们非常期待 Java 8 的到来。

InfoQ:我们应该如何使用开源软件来构建基于 Hadoop 的大数据平台,让整个解决方案更加易于维护?

Mark:在 Spring Hadoop 是个很好的项目,其中你能找到很多东西帮助创建 Hadoop 项目。如何用它来创建一个更可靠的解决方案,人们使用 Hadoop 的传统方式是用 MapReduce 任务来和 HDFS 交互,用 Pig 或者 Hive 这种构建于 MapReduce 核心之上的语言,所有这些操作基本都是通过命令行、Shell、命令行应用的方式,很多都是在 JavaScript、Perl 和 Ruby 脚本里,一个接一个的进行调用,这种方式很乏味,严重依赖于脚本,在用的时候要十分小心。

在 Spring Hadoop 里,我们有个使用 Hadoop 的编程模型,易于使用,和现有的配置 Spring 的方式保持一致,提供了很多辅助 API 和工具类,让你从脚本驱动的编写 Hadoop 应用的方式转变到一种使用 Java 类的方式,你有了一套早已习惯的结构,只需配置到 Hadoop 的连接,然后执行 Hadoop 任务。比如,你现在可以把那个任务注入到你的代码里并运行。这种方式比意大利面条式的脚本更具可维护性。可以先从一个简单的任务和 Spring 应用上下文开始,以后要是有了很多步骤,比方说 20 个步骤,这时可以在 Spring Batch 任务里复用那些 Hadoop 任务的定义,也就是说 Spring Batch 里的任务就是 Hadoop 任务的引用。也许这么多“任务”有点混淆,但通过这种方式应用程序能更加可靠,可维护性更强。

InfoQ:非常感谢您接受我们的采访。

Mark:谢谢。

2012-12-10 00:121746
用户头像

发布了 135 篇内容, 共 58.8 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

阿里三面:CAP和BASE理论了解么?可以结合实际案例说下?

Java 程序员 后端

阿里程序员:入职才两个月,我决定离职

Java 程序员 后端

阿里老人吐槽:新人水平差不服管不加班!汇报经理让他无法转正

Java 程序员 后端

阿里腾讯微软拥抱低代码,程序员们要“失业”?

Java 程序员 后端

阿里亿级长连网关的云原生演进之路

Java 程序员 后端

阿里又一个“逆天”容器框架!这本Kubernetes进阶手册简直太全了

Java 程序员 后端

阿里员工感慨:码农们过去暴富有多轻松,现在赚钱就有多辛苦!

Java 程序员 后端

阿里大师推荐的这份Java开发必读书单,让我成功在寒冬中站稳脚步

Java 程序员 后端

阿里技术总监纯手打的内部手册《MySQL笔记》真是太硬核了

Java 程序员 后端

一周信创舆情观察(11.1~11.7)

统小信uos

阿里技术官亲手总结Part 10个知识点!主动分享!收藏必备!

Java 程序员 后端

阿里架构师剖析程序运行原理,程序是如何运行又是如何崩溃的?

Java 程序员 后端

阿里面试官整理出面试必问:java面试核心知识原理+框架笔记

Java 程序员 后端

阿里面试官:你好,谈谈对Synchronized的理解?(一

Java 程序员 后端

阿里面试官:HashMap 为什么是线程不安全的?

Java 程序员 后端

用JavaScript访问SAP云平台上的服务遇到跨域问题该怎么办

Jerry Wang

JavaScript SAP 11月日更 SAP微信集成

阿里巴巴内部涨薪必备的“王者级Dubbo实战笔记”,不啃透不下班

Java 程序员 后端

助力数字孪生,TDengine在叁零肆零仿真平台中的实践

TDengine

数据库 tdengine 后端

35w奖金池,腾讯云TDSQL精英挑战赛正式开赛!

科技热闻

阿里老人吐槽:新人水平差不服管不加班!汇报经理让他无法转正(1)

Java 程序员 后端

阿里内部疯传的分布式架构手册,轻松吊打小日子过的不错的面试官

Java 程序员 后端

阿里内部绝密Java面试笔记(珠峰版),冒着被开的风险免费分享

Java 程序员 后端

Flink CDC 实时数据同步详细解析

五分钟学大数据

flink 11月日更

阿里巴巴蚂蚁金服Java面试经历包含答案解析

Java 程序员 后端

这几个动态规划的问题,面试官就爱问

华为云开发者联盟

数组 动态规划 序列 子数组 公共子串

阿里五面(4轮技术+HR)成功逆袭,面经分享

Java 程序员 后端

阿里技术3面+HR面,奋战两个月,终斩获offer定级阿里P6+

Java 程序员 后端

阿里二面被问16道 volatile 问题,玩命补充jvm、多线程、高并发

Java 程序员 后端

技术为本,中科柏诚致力于打造高效供应链金融平台

联营汇聚

阿里大牛看了也要膜拜的大话代码架构(项目实战版)终于出来了

Java 程序员 后端

阿里蚂蚁金服超全126道面试题,都会的话,你也能去面阿里了

Java 程序员 后端

SpringOne大会采访:Mark Pollack博士专访_语言 & 开发_丁雪丰_InfoQ精选文章