POJO、JavaBean、EJB的区别
全称是 Plain Old Java Object,翻译为“纯洁老式的java对象”,一般都使用“简单java对象”来称呼。为什么这么说呢?原因是POJO类没有从任何类继承,也没有实现任何接口,更没有被其他框架侵入的java对象。POJO类只有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的接口。
package com.test;
/**
* 简单POJO类
*
* @author Nocol
*
*/
public class User {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
JavaBeanJavaBean 是一种JAVA语言写成的可重用组件。JavaBean符合一定规范编写的Java类,不是一种技术,而是一种规范。大家针对这种规范,总结了很多开发技 巧、工具函数。符合这种规范的类,可以被其它的程序员或者框架使用。它的方法命名,构造及行为必须符合特定的约定:
1、所有属性为private。
2、这个类必须有一个公共的缺省构造函数。即是提供无参数的构造器。
3、这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。4、这个类应是可序列化的。实现serializable接口。
package com.test;
import java.io.Serializable;
/**
* JavaBean
* @author Nocol
*
*/
public class User1 implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String password;
public User1() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
/**
* 定义其他方法
*/
public void test(){
System.out.println("JavaBean 中的其他方法");
}
}
POJO和JavaBean两者有什么区别?
POJO其实是比javabean更纯净的简单类或接口。POJO严格地遵守简单对象的概念,而一些JavaBean中往往会封装一些简单逻辑。POJO的格式是用于数据的临时传递,它只能装载数据, 作为数据存储的载体,而不具有业务逻辑处理的能力。而javabean虽然数据的获取与POJO一样,但是javabean当中可以有其它的方法。
EJB
EJB(Enterprise JavaBean)是一种javabean的组合规范。我们可以认为它是一组"功能"JavaBean的集合。上面说了JavaBean是实现了一种规范的Java对象。这里说EJB是一组JavaBean,的意思 是这一组JavaBean组合起来实现了某个企业组的业务逻辑。这里的一组JavaBean不是乱组合的,它们要满足能实现某项业务功能的搭配。
1.Session Bean用于实现业务逻辑。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。 这个类一般用单例模式来实现,因为每次连接都需要用到它。
2.Entity Bean是域模型对象,仅作为普通Java对象(POJO)来使用。用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象。
3.MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。
EJB与 JavaBean的区别 ?
JavaBean是一个组件,而EJB就是一个组建框架。JavaBean面向的是业务逻辑和表示层的显示,通过编写一个JavaBean,可以将业务逻辑的事件和事务都放在其中,然后通过它的变量属性将所需要的内容在表示层传递显示。
运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了。因此EJB可以看作是运行在EJB容器中的JavaBean。
例子:
网络购物,虚拟购物车属于javabean,而定单处理属于ejb. 这里,虽然购物车的属性是用户可以看见的,但是实际上更新购物车的属性,比如有什么商品在其中,目前总价格统计,还是要放到服务器那处理的吧...那么我可能就直接将购物车写成一个JAVA对象,放在一个beans的包内,然后在action层中将购物车的bean信息给直接更新掉再发送回去.那么按此做法,实际上此javabean的处理依然还是在服务器上进行运算再过来的,用户不过是看的到此对象的一些显性结果而已.
推荐阅读