BOs 通常用于patrón DAO (Data Access Object)内置patrón ORM (Object-Relational mapping)指向包含业务逻辑(数据库访问)的 BO 类。这些 BO 类,如果在 API 中发布时可以访问,则会产生很多不安全性,因为它们提供对数据库的访问。出于这个原因,BO 类通常被复制到 VO 类中,其中 VO 不再可以直接访问 DB,并且可以在公共 API 中公开而不会产生安全漏洞。
DTO:代表Data Transfer Object数据传输对象,是在进程之间传输数据的对象。使用它的动机是进程之间的通信通常使用远程接口(例如,Web 服务)完成,其中每次调用都是昂贵的操作。
AEJB (Enterprise Java Bean)是一个 java bean,它处理通过注释或 XML 配置的事件。如果 EJB 管理数据库访问,如果它遵循相应的设计模式,则可以称为 BO。Los EJBs son una API completa这是其他框架的竞争,例如spring.
VO:代表
Value Object
并且是一个以视图为中心的Java Bean对象。它基本上是一个POJO (Plain old java object).
BO:
Business Object
表示并且通常是映射到数据库实体(业务对象)的 Java Bean,例如在 Hibernate 中。BOs 通常用于
patrón DAO (Data Access Object)
内置patrón ORM (Object-Relational mapping)
指向包含业务逻辑(数据库访问)的 BO 类。这些 BO 类,如果在 API 中发布时可以访问,则会产生很多不安全性,因为它们提供对数据库的访问。出于这个原因,BO 类通常被复制到 VO 类中,其中 VO 不再可以直接访问 DB,并且可以在公共 API 中公开而不会产生安全漏洞。DTO:代表
Data Transfer Object
数据传输对象,是在进程之间传输数据的对象。使用它的动机是进程之间的通信通常使用远程接口(例如,Web 服务)完成,其中每次调用都是昂贵的操作。A
EJB (Enterprise Java Bean)
是一个 java bean,它处理通过注释或 XML 配置的事件。如果 EJB 管理数据库访问,如果它遵循相应的设计模式,则可以称为 BO。Los EJBs son una API completa
这是其他框架的竞争,例如spring
.我没有很好地掌握这些概念,但在此页面上您可以找到更好的解释:Java mvc dao 和 dto 中的设计模式
以下代码是一个示例:
bankDAO 对象是访问数据库实体(表)的对象。由于这是一个select (
bancoDAO.getAll()
) 操作,因此整个方法都使用只读事务 (@Transactional(readOnly = true)
) 进行注释。此方法属于 Web ServiceSystem.out.println("llegue a banco service");
,因此 bankDAO 对象不会公开,而是复制到 DTO (BancoDTO bancoDTO = new BancoDTO();
) 中,并且此对象是公开的对象。归根结底,这些都是约定(例如 setter 和 getter),但是有几个框架遵循它们,没有什么强迫您使用它们,但是如果您使用遵循它们的框架而您不使用它们,那么您在做什么所说的框架可能不适合你。