测试开发进阶——常用中间件概念——java bean的理解

什么是JavaBean?


JavaBean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去。

所有遵循“一定编程原则”的Java类都可以被称作JavaBean。

JavaBean是一个遵循特定写法的Java类,是一种Java语言编写的可重用组件,它的方法命名,构造及行为必须符合特定的约定:

1、这个类必须具有一个公共的(public)无参构造函数;


2、所有属性私有化(private);


3、私有化的属性必须通过public类型的方法(getter和setter)暴露给其他程序,并且方法的命名也必须遵循一定的命名规范。


4、这个类应是可序列化的。(比如可以实现Serializable 接口,用于实现bean的持久性);

JavaBean在Java EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,

其它程序可以通过反射技术实例化JavaBean对象(内省机制),并且通过反射那些遵循命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。

因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO。

(可以这么理解,POJO按JavaBean的规则来,就可以变成JavaBean)。

简而言之,当一个POJO可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean。(没毛病!)

------------------------------------

JavaBean是一种组件技术,就好像你做了一个扳手,而这个扳手会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳手扳、锤、撬等等),而这个扳手就是一个组件。

对于JavaBean,就是一个Java模型组件,他为使用Java类提供了一种标准的格式,在用户程序和可视化管理工具中可以自动获得这种具有标准格式的类的信息,

并能够创建和管理这些类。


JavaBean可以使应用程序更加面向对象,可以把数据封装起来,把应用的业务逻辑和显示逻辑分离开,降低了开发的复杂程度和维护成本!


JavaBean 是一种JAVA语言写成的可重用组件。

为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBeans 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。

众所周知,属性名称符合这种模式,其他Java 类可以通过内省机制发现和操作这些JavaBean 属性。

通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,

另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。

JavaBean 是使用 java.beans 包开发的,它是 Java 2 标准版的一部分。JavaBean 是一台机器上同一个地址空间中运行的组件。JavaBean 是进程内组件。

什么是Bean?


Bean的中文含义是“豆子”,Bean的含义是可重复使用的Java组件。

所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成、外界不了解其内部信息和运行方式的群体。使用它的对象只能通过接口来操作。


Bean并不需要继承特别的基类(BaseClass)或实现特定的接口(Interface)。

Bean的编写规范使Bean的容器(Container)能够分析一个Java类文件,并将其方法(Methods)翻译成属性(Properties),即把Java类作为一个Bean类使用。

Bean的编写规范包括Bean类的构造方法、定义属性和访问方法编写规则。


Java Bean是基于Java的组件模型,由属性、方法和事件3部分组成。

在该模型中,JavaBean可以被修改或与其他组件结合以生成新组件或完整的程序。它是一种Java类,通过封装成为具有某种功能或者处理某个业务的对象。

因此,也可以通过嵌在JSP页面内的Java代码访问Bean及其属性。

什么是EJB 、Entity Bean?


Enterprise Bean,也就是Enterprise JavaBean(EJB),是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。

其特点包括网络服务支持和核心开发工具(SDK)。

在 J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,

分别是会话 Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。

1.Session Bean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。

每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。

Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。

这个类一般用单例模式来实现,因为每次连接都需要用到它。

2.Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,

   事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个 Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,

   容器会自动将Entity Bean的状态和数据库同步。

Enterprise Bean 是使用 javax.ejb 包开发的,它是标准 JDK 的扩展,是 Java 2 Enterprise Edition 的一部分。

Enterprise Bean 是在多台机器上跨几个地址空间运行的组件。因此 Enterprise Bean 是进程间组件。

我们一般所熟悉的tomcat仅仅只实现了j2ee的一小部分规范,它只是一个serlvet的容器(Web)容器,它不能跑J2EE的程序,EJB说到底也是种规范,

它是j2EE下面的一个子分类(核心类),所以j2ee包含EJB,同时我们都可以说JBOSS,Weblogic,WebSphere是J2EE容器,也可以叫EJB容器。

因为它们能跑EJB组件。那么什么是EJB组件呢?其实就是java写出来的一段程序被打包成EAR包,这个EAR包放在某个EJB的容器的特定目录下启动就可以跑了。

类似于互联网公司经常使用的WAR包(部署在tomcat上)。

然后要说的是EJB是一种是很老、很繁琐的技术标准(规范)了,现如今基本已经被淘汰了。

因为EJB的繁琐、难用,spring的出现彻底革了EJB的命,不然怎么说是Java的春天(spring)来了呢。

EJB实现原理: 就是把原来放到客户端实现的代码放到服务器端,并依靠RMI进行通信。

其余概念可以参考:

https://blog.csdn.net/chenchunlin526/article/details/69939337/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4.no_search_link&spm=1001.2101.3001.4242

原文地址:https://www.cnblogs.com/xiaobaibailongma/p/15334208.html