写点什么

《零基础学 Java》 FAQ 之 6-Java 里 Bean 这个名字怎么来的

用户头像
臧萌
关注
发布于: 2020 年 05 月 16 日
《零基础学 Java》 FAQ 之 6-Java里Bean这个名字怎么来的

每种语言都喜欢找一些和自己语言名字相关的周边单词,来作为语言里的一些概念的名字。



比如说 Java 中出镜率颇高的 bean 这个概念。Bean 是豆子的意思。Java 呢,原本是爪哇岛的意思,盛产咖啡豆。所以 coffee bean 就和 Java 有了联系。Bean 也就跟 Java产生了关系。



用我们现在的话说,这就是梗。get到了,会心一笑,get不到,基本影响交流。



现在这个梗就更有意思了。爪哇岛盛产 coffee bean。Java 语言现在盛产 spring bean。



当然 bean 最开始和 Java 语言联系在一起,是一个叫做 Java Bean 的东西。 Java Bean 是一个约定俗成的规范,并非是一个语法层面的东西。简要来说,一个 Java Bean 是一个 public 的 class,它里面的成员变量都是 private 的,而且为每个成员变量提供get/set等方法。



基于这个标准,Sun 公司搞出了EJB,也就是Enterprise Java Bean。这个概念已经凉凉了,不用再费脑细胞学习它是什么了。



接过 EJB 的市场的,是我们现在耳熟能详的 Spring。早在 EJB 发际不久,Spring 就以更简单更好用的 Bean 来和 EJB 刚。一个是 Sun,Java 的主要控制者,一个是第三方。看来实力悬殊的比赛,最后还是 Spring 赢了,而且完胜。后来 Java 主动拥抱 Spring,将依赖反转等 Spring 首创的相关概念的注解也加入到了 Java 中。



这也从另一个侧面证明了 Java 是一个相对公平和开放的平台。说到这里就多说一句。作为微软对标 Java 生态系统的平台,.net 再号称自己有技术优势(当然我并不这么觉得,大家都是现代语言,谁也不比谁高多少),它也只能跑在 Windows + IIS 上。那就是微软一家独大,除非大家没得选,否则一个封闭的平台,再优秀也无法培育出一个充满活力的生态系统。当然现在微软开始拥抱开源,拥抱 Linux。但是我还是觉得,以后能跟 Java 抢市场的,不会是 .net 平台。即便是大如微软,大如 Google,生态系统也不是想建立就能建立的。



说回到 bean。Spring 既然一开始对标的是 EJB,也很自然的把自己系统里的东西叫做 bean。但是它并不像 Sun 那样搞这么复杂,就简简单单的一个词:bean。现在我们习惯叫它 spring bean。



就说这么多吧,实在编不下去了。大家有什么补充的吗?






这篇文章来自极客时间推出的《零基础学Java》中的FAQ。除了在每节视频课下方回答大家的问题之外,针对大家提出的优质问题或者普遍问题,如果需要更大篇幅的文章解答,则会在FAQ中以文章的方式给出回答。带你零基础入门,夯实Java,课程地址:https://time.geekbang.org/course/intro/181



发布于: 2020 年 05 月 16 日阅读数: 60
用户头像

臧萌

关注

一线程序员,偶尔写写字 2017.10.20 加入

《零基础学 Java》,《职场求生攻略》 视频课作者 《Java入门1·2·3》作者

评论

发布
暂无评论
《零基础学 Java》 FAQ 之 6-Java里Bean这个名字怎么来的