这之前从未听说过Spring Bean,今天因为学习的<Java核心36讲>其中一篇涉及到了这个内容,因自己基础薄弱,杨晓峰老师讲的内容需要一定的基础才能看懂,故在网上搜罗一些我能理解的关于Spring Bean的知识点在此记录下来。下面的知识点都是散乱的,仅做学习笔记。

1.    JavaBean中的Bean是啥?

当初在开发Java语言的时候,就是不知道该取什么名字。
后来,在程序员中,他们经常喝一种咖啡, 叫“爪洼”(音译),就取名为JAVA。
这种咖啡,是用“爪洼豆”磨出来的。所以,他们给用“豆”来命名。就是BEAN。

豆子的意思

可以了解为类

2.    Java为什么要用JavaBean?

为什么传值,非得get,set这样来进行。
直接classA.intA这样用不好的地方是什么?

有个特别的比喻(我觉得特别形象)

那样的话就不是封装了, 也就违背了java(面向对象)的本质了。 这好比一个人, 内脏器官是人的属性, 你只能通过人体外部的表象去看这人的那个器官有问题, 而不能直接把内脏取出来。

JAVABEAN 就是自定义的对象!数据存取都很方便和规范
用CLASSA这种表现的,1是不专业 2凌乱

javabean中的setter AND  getter  就好像 你人一样  ,万物皆对象。。。。人的外貌是  属性
人的动作和行为  就是  JAVABEAN中的 方法 ;

这样做的话,在这个类中对其自身的属性有更高的可控性,比如在使用 setName 时,除了 this.name = name; 之外,还可以做一些其他的事情。如果直接把 name 属性给 public 了,那么就没有任何可控性了。

3.    Spring Bean

最好 JavaBean, Spring bean 和 POJO 一起来讨论

JavaBean, Spring bean 和 POJO 是三个被广泛使用的术语,我们来看看它们的含义,以及分析三者的区别。

JavaBeans

根本而言,JavaBean只是遵循了特定编码规范的Java类而已。

1)    包含默认的(无参数)的构造函数

2)    允许通过访问器来访问类的成员属性

3)    实现java.io.Serializable接口

准确来说,JavaBean是遵循了Sun制定的JavaBean标准的类,该标准早于1996年发布。JavaBean被定义为Java的“软件组件模型”。最初的想法是将JavaBean打造成能够被构建工具可视化操作的可重用的组件,由此,软件供应商可以创建和出售能够让用户灵活的组合进应用程序的JavaBean.它的三个重要特征是:

1)    它暴露一系列属性

2)    它允许其他组件调用一系列方法

3)    它触发的一系列事件(用来通知它注册了的监听器)

POJO

POJO是 Plain Old Java Object(简单的Java对象)的缩写。它最初是由Martin Fowler等人创造的,作为一种花式的对普通Java对象的称呼。这类对象不需要通过框架来使用,也不需要在特定应用服务器的环境下才能运行。这个词主要用来区分简单、轻量的Java对象和“重量级“的类,例如EJB。《POJOs in Action》一书介绍了使用这类轻量的对象来进行开发的方法,许多框架-例如Spring-也推广了POJO的使用。

Spring beans

Spring bea表示受Spring管理的对象。具体来说,它是被Spring框架容器初始化、配置和管理的对象。Spring bean是在Spring的配置文件中定义(现在也可以通过annotation注解来定义),在Spring容器中初始化,然后注入到应用程序中的。

因为在最早的版本中,Spring是被设计用来管理JavaBean的,所以Spring管理的对象会被称为“bean”。当然,现在Spring已经可以管理任何对象,即使它不具备默认构造器和设置方法(getter和setter)这些JavaBean的特性。然而,“Spring bean”这个术语仍然被保存了下来。

Spring bean可以是POJO吗。当然可以,并且它通常就是。(即使它并不一定得是POJO,例如Spring可以用来处理重量级Java对象,比如EJB对象)。

总结

虽然距离JavaBean规范的发表已经过了十多年,这个规范仍然有重要的作用,并且影响着现代框架–如Spring–的开发。然而,虽然我们仍然可以称这些包含默认构造器和私有字段的访问方法的类为JavaBean,它的“可以被构建工具可视化地管理的可重用组件”的概念已经不再流行了。

而另一方面,POJO已经无处不在了,人们对EJB的复杂性的积怨使得“轻量的”Java编程获得了广泛采用。

Spring bean是由Spring框架创建和管理的对象。

这三个概念并不是互斥的。一个Java对象可以同时是JavaBean,POJO和Spring bean。

对Spring Bean了解一二的更多相关文章

  1. Spring8:一些常用的Spring Bean扩展接口

    前言 Spring是一款非常强大的框架,可以说是几乎所有的企业级Java项目使用了Spring,而Bean又是Spring框架的核心. Spring框架运用了非常多的设计模式,从整体上看,它的设计严格 ...

  2. Spring Bean详细讲解

    什么是Bean? Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象. Spring 容器会自动完成@bean对象的实例化. 创建应用对象之间的协作关系的行为称为:装配( ...

  3. Spring Bean的生命周期(非常详细)

    Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...

  4. spring bean的生命周期

    掌握好spring bean的生命周期,对spring的扩展大有帮助.  spring bean的生命周期(推荐看)  spring bean的生命周期

  5. spring bean的重新加载

    架构体系 在谈spring bean的重新加载前,首先我们来看看spring ioc容器. spring ioc容器主要功能是完成对bean的创建.依赖注入和管理等功能,而这些功能的实现是有下面几个组 ...

  6. Spring Bean

    一.Spring的几大模块:Data access & Integration.Transcation.Instrumentation.Core Spring Container.Testin ...

  7. 【转】Spring bean处理——回调函数

    Spring bean处理——回调函数 Spring中定义了三个可以用来对Spring bean或生成bean的BeanFactory进行处理的接口,InitializingBean.BeanPost ...

  8. 在非spring组件中注入spring bean

    1.在spring中配置如下<context:spring-configured/>     <context:load-time-weaver aspectj-weaving=&q ...

  9. spring bean生命周期管理--转

    Life Cycle Management of a Spring Bean 原文地址:http://javabeat.net/life-cycle-management-of-a-spring-be ...

随机推荐

  1. 【RF库Collections测试】Get From Dictionary

    Name:Get From DictionarySource:Collections <test library>Arguments:[ dictionary | key ]Returns ...

  2. 安卓教程:提取APK程序里图片资源的方法

    有些APK程序里的图标.图片很漂亮,在使用程序时你可能会想,如果能把这些漂亮的图标.图片提取出来就好了,其实这是可以办到的,请看教程. 本教程以“电影超人”的APK安装包为例,其它APK程序的提取方法 ...

  3. m2014-android->安卓开发在线案例

    1.www.javaapk.com account: 克里斯  pwd: xiaobai 这个网站非常不错,各种例子,各种可供下载演示的项目,用了就知道,好处不多说,真心赞!

  4. 将Eclipse项目导入到Android studio 中 很多点9图出现问题解决方法

    在build.gradle里添加以下两句: aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false

  5. 什么是“类数组对象”,在jquer中怎样将类数组对象转换为数组对象

    类数组对象的定义: 所谓"类数组对象"就是一个常规的Object对象,如$("div")但它和数组对象非常相似:具备length属性, 并以0.1.2.3……等 ...

  6. MQTT协议笔记之订阅

    前言 记忆不太好的时候,只能翻看以前的文章/笔记重新温习一遍,但找不到MQTT协议有关订阅部分的描述,好不容易从Evernote中找到贴出来,这样整个MQTT协议笔记,就比较齐全了. SUBSCRIB ...

  7. MyBatis官方文档——入门

    入门 安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可. 如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 ...

  8. Linux下TCP延迟确认(Delayed Ack)机制导致的时延问题分析

    版权声明:本文由潘安群原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/105 来源:腾云阁 https://www.qclo ...

  9. Android Activity 半透明效果(Translucent)

    本文转自:http://norety.javaeye.com/blog/648725 今天试着做activity半透明的效果,做出来之后才发现想复杂了!很简单的几句就可以实现,不多说了,贴代码! 1. ...

  10. ORA-01153: an incompatible media recovery is active

    ORA-01153: an incompatible media recovery is active Cause: Attempted to start an incompatible media ...