Java 需要了解broadleaf commerce自定义注释实现

Java 需要了解broadleaf commerce自定义注释实现,java,annotations,broadleaf-commerce,Java,Annotations,Broadleaf Commerce,我一直在努力通过《阔叶商业守则》。使用了多个自定义注释,但我无法找到它们。有人能帮我吗。以@AdminPresentation为例,它是包org.broadleafcommerce.common.presentation中的一个自定义注释 然而,这是如何处理整个应用程序,我无法找到。我现在所了解的是,我们可以使用反射或AOP来处理它。但这是毫无意义的 请帮忙 源代码-请查看: 您将在自定义注释中获得关于“default”的解释 Florent COUDERT.简短的回答是,org.broadl

我一直在努力通过《阔叶商业守则》。使用了多个自定义注释,但我无法找到它们。有人能帮我吗。以@AdminPresentation为例,它是包org.broadleafcommerce.common.presentation中的一个自定义注释

然而,这是如何处理整个应用程序,我无法找到。我现在所了解的是,我们可以使用反射或AOP来处理它。但这是毫无意义的

请帮忙

源代码-

请查看:

您将在自定义注释中获得关于“default”的解释


Florent COUDERT.

简短的回答是,
org.broadleafcommerce.openadmin.server.dao.provider.metadata.BasicFieldMetadataProvider#addMetadata
是处理这些注释的一个地方

在更广泛的层面上,openadmin中的控制器将使用AdminEntityService来获取类元数据(所有关于如何向管理员用户显示类的数据)。
@AdminPresentation
注释是此数据的一个来源。方法
AdminEntityServiceImpl#getClassMetadata
是获取ClassMetaData的主要网关

#getClassMetadata
调用
#inspect
并最终访问
PersistenceManager#inspect
。此方法使用DynamicEntityDao最终获得
元数据#getFieldMetadataForTargetClass
。该方法通过反射获取类的每个字段,然后通过可用的FieldMetadataProviders处理这些字段。FieldMetadataProviders将
java.lang.reflect.Field
转换为
org.broadleafcommerce.openadmin.dto.FieldMetadata

任何提供的FieldMetadataProvider都可以提供字段元数据。此元数据在FormBuilderService中用于构造管理页面

类引用:

AdminEntityService-
org.broadleafcommerce.openadmin.server.service.AdminEntityServiceImpl

PersistenceManager-
org.broadleafcommerce.openadmin.server.service.persistence.PersistenceManagerImpl#inspect

DynamicEntityDao-
org.broadleafcommerce.openadmin.server.dao.DynamicEntityDaoImpl#getPropertiesForEntityClass

元数据-
org.broadleafcommerce.openadmin.server.dao.Metadata#getFieldMetadataForTargetClass

FieldMetadataProvider-
org.broadleafcommerce.openadmin.server.dao.provider.metadata.FieldMetadataProvider
org.broadleafcommerce.openadmin.server.dao.DynamicEntityDaoImpl#fieldMetadataProviders


FormBuilderService-
org.broadleavecommerce.openadmin.web.service.FormBuilderServiceImpl

我不是在寻找一般的答案,我很清楚注释是如何使用的。我所说的wrt是一个提到的源代码。请参阅Java反射应用程序编程接口。