Java 具有自定义注释的目的

Java 具有自定义注释的目的,java,spring,hibernate,Java,Spring,Hibernate,一些使用自定义注释的项目如下所示。举例如下。请给我解释一下 我应该在什么时候决定使用自定义注释。 @Target&@Retention注释属性的角色 下面使用import java.lang.annotation.Target和import java.lang.annotation.Retention或hibernate特定的注释更好吗 @实体 @Tablename=信用卡 @信用卡实体 如果您计划在代码中的多个位置同时使用相同的注释,那么最好使用自定义注释。例如,在您的情况下,如果您将在另一个

一些使用自定义注释的项目如下所示。举例如下。请给我解释一下

我应该在什么时候决定使用自定义注释。 @Target&@Retention注释属性的角色 下面使用import java.lang.annotation.Target和import java.lang.annotation.Retention或hibernate特定的注释更好吗

@实体 @Tablename=信用卡

@信用卡实体


如果您计划在代码中的多个位置同时使用相同的注释,那么最好使用自定义注释。例如,在您的情况下,如果您将在另一个位置一起使用@Entity@Tablename=creditCard,最好将它们合并到一个注释下,如CreditCardEntity注释,但如果这是唯一一个位置,您将同时使用这两个注释,在本例中更可能,没有必要为它做自定义注释。

您读过这个吗@Target-标记另一个注释以限制注释可应用于哪种类型的Java元素,@Retention-指定标记的注释是如何存储的,无论是仅以代码形式存储、编译到类中还是在运行时通过反射可用。为什么您希望表中有两个具有相同名称的实体类?这不是一个真正可行的例子。@Vaelyr如果你仔细阅读我的答案,我在这个例子中提到它不符合逻辑,如下所示:但是如果这是唯一一个你将同时使用这两个注释的地方,在这种情况下更可能是这样,那么就没有必要对它进行自定义注释。
public class CreditCard implements java.io.Serializable {}

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.hibernate.validator.ValidatorClass;

@Target( { ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface CreditCardEntity {}

 }