这之前从未听说过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. NGUI在5.3打包失败问题

    一.NGUI版本 NGUI是很好用的Unity UI插件. 当前使用版本NGUI Next-Gen UI v3.9.7 (Feb 10, 2016)和NGUI Next-Gen UI 3.9.0两个版 ...

  2. 关于KEIL仿真的虚拟串口讲解

    这个是最后的效果图,右下方是串口打印的设置 第一步:在程序上写入关于串口一的配置,以及初始化和串口输出的内容 第二步:需要的时候在进行配置,在OPTIONS OF TARGET一栏的c/c++中(其原 ...

  3. JS控制元素可见(显示)与不可见(隐藏)

    方法一: document.getElementById("id").style.visibility="hidden"; document.getElemen ...

  4. UVa 10905 - Children's Game(求多个正整数排列后,所得的新的数字的极值)

    4thIIUCInter-University Programming Contest, 2005 A Children’s Game Input: standard input Output: st ...

  5. java高级---->Thread之BlockingQueue的使用

    今天我们通过实例来学习一下BlockingQueue的用法.梦想,可以天花乱坠,理想,是我们一步一个脚印踩出来的坎坷道路. BlockingQueue的实例 官方文档上的对于BlockingQueue ...

  6. java三方---->dom4j解析xml数据

    Dom4j是一个易用的.开源的库,用于XML,XPath和XSLT.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP.今天我们就开始Dom4j的学习. Dom4j的使用 ...

  7. JS-两周内自动登录功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Mac下Python与Kafka的配合使用

    安装并配置Kafka 安装 # brew install kafka 配置 """ zookeeper配置文件/usr/local/etc/kafka/zookeeper ...

  9. Egret的一些性能优化

    Egret的性能优化不知道在哪里啊,主要参考Laya的性能优化,都差不多 一.性能统计面板 index.html页面设置data-show-fps=true打开性能面板 性能统计面板说明 Egret没 ...

  10. elk日志分析与发掘深入分析

    elk日志分析与挖掘深入分析 1 为什么要做日志采集? 2 挖财自己的日志采集和分析体系应该怎么建? 2.1 日志的采集 2.2 日志的汇总与过滤 2.3 日志的存储 2.4 日志的分析与查询 3 需 ...