“你在这。”

“我想了想,决定再教你一节小课,对你很有帮助。在你从事程序员工作之前,你可能永远不会遇到一些特殊的术语,所以我现在想向你介绍几个常见的概念。”

“大约10 年前,Enterprise  J ava  Beans ( EJB ) 开始被广泛使用。

“JavaBeans 是什么意思?”

“JavaBeans 基本上就是咖啡豆的意思(Java 是咖啡的一种)。很幽默。”

“一个程序的业务逻辑采用一组高级对象或 bean 的形式,它们可以交换消息、自我保存、通过名称查找彼此,等等。通常,这是通过一个特殊的超级对象来实现的——尽管还有其他方法,但花哨的父类。此类对象的行为受到高度监管。

“最著名的三种 EJB bean 是:”

实体 Bean是一种用于存储特定数据的 bean。这种类型的 bean 具有将自身及其字段保存到数据库中的内置机制。这种类型的对象可以被销毁,然后从数据库中重新创建。但除了存储数据,它没有任何逻辑。”

会话 Bean是功能性 bean。每个会话 bean 都有自己的功能。一个做一件事,另一个做另一件事。这样的 bean 与其他对象和 bean 一起工作,而不是与它们自己的数据一起工作。”

" Session Beans分为两类。"

无状态会话 Bean是一种内部变量不存储其运行所需的重要数据的 bean。这种类型的 bean 可以被销毁然后重新创建,它将像以前一样执行其功能。”

有状态会话 Bean是一种在内部存储它在工作时使用的数据的 bean。如果我们在这样的 bean 上调用方法,那么每个后续调用都可以使用在先前调用中传递给 bean 的一些数据。不过,这个 bean与常规对象不同。”

“但使用 bean 也不是那么好,所以钟摆很快就向相反的方向摆动。开发人员开始更频繁地使用普通对象。他们甚至想出了一个特殊的名称。”

POJO是一个普通的 J ava 对象。这些对象没有任何超级函数,也没有继承超级对象。它们只是普通的 Java 对象。 

“当你在实践中了解 EJB 时,你就会明白其中的区别。粗略地说,POJO 是一把刀,而 EJB 是一把瑞士军刀,你也可以用它来打电话。”

“有趣的比较。”

“是的,还有一件事。”

“随着时间的推移,对象和类开始专门化。因此,开发人员确定了某些角色并为相应的对象赋予了新名称。”

“数据传输对象 ( DTO ) 是为传输数据而创建的对象。这些对象通常有两个要求。它们必须:a) 能够存储数据,b) 可序列化。换句话说,它们仅用于传输数据”

“您创建一个对象,将业务逻辑中所需的数据写入其中,将其序列化为 JSON 或 XML,然后将其发送到需要去的地方。或者反过来:消息到达,您将其反序列化为 DTO 对象,并从中提取数据。”

实体是存储在数据库中的对象。但它们不包含任何业务逻辑。你可以说这是业务模型的数据。”

“我们还有数据访问对象 ( DAO )。DAO 用于将对象保存到数据库并从数据库中检索它们。实体不执行此操作,因为它没有任何逻辑,所以它无法保存任何地方的任何东西。”

例子:

DAO 和实体之间的关系
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
评论
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

“目前为止就这样了。”

“虽然这是一个小的介绍性课程,但您现在仍然无法理解更多。我们可以花几天时间讨论每个主题,也可以花数年时间讨论 EJB。”

“但我希望你至少能够想象,如果你在对话和信息、论坛或采访中遇到这些事情,你会说些什么。”

“嗯。谢谢你,Bilaabo。是的,我想我对专业术语了解不够。再次,非常感谢你。”