Java Bean 与 Java Class 的区别

更新日期: 2017-05-13 阅读次数: 4508 分类: Java

Java 中的名号总是很唬人。Java Bean 初看,完全不知所谓。

Bean - 豆子的意思。

Java Bean 实际是就是一个普通的 Java Class,但是需要满足三个要求

  • 所有属性为 private,只允许通过 setXXX, getXXX 进行操作
  • 一个不需要初始化参数的 constructor
  • 实现了 Serializable

当然,到这里,依然不知道 Java Bean 有什么蛋用!

Java Bean 存在的意义是什么?这样设计有什么考虑?

但是当与 The IoC container 结合着来看,就能明白 Java Bean 的优势了

例如

services.xml 中的配置

  <bean id="petStore"
        class="org.springframework.samples.jpetstore.services.PetStoreServiceImpl">
    <property name="accountDao" ref="accountDao"/>
    <property name="itemDao" ref="itemDao"/>
    <!-- additional collaborators and configuration for this bean go here -->
  </bean>

daos.xml 中的配置

  <bean id="accountDao"
      class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapAccountDao">
    <!-- additional collaborators and configuration for this bean go here -->
  </bean>

  <bean id="itemDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapItemDao">
    <!-- additional collaborators and configuration for this bean go here -->
  </bean>

从 services.xml 中 petStore 的两个属性均采用依赖注入的方式来配置,就明白了,这样做优势很明显。

  • 不在 Java Bean 中使用其他 Class 的实例,这样做是为了复用。通过依赖配置,很好的做到这一点。
  • 一个 Class 内部如果需要示例化其他 Class, 那么这是无法复用的。

参考

领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

相关文章

爱评论不评论

近期节日

2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
2020年04月30日 全国交通安全反思日
2020年05月01日 国际劳动节
2020年05月04日 五四青年节
2020年05月05日 立夏
查看更多节日