【发布时间】:2020-05-01 11:20:18
【问题描述】:
在 Spring Boot 中,当使用一些注解(例如 @Component、@Service、@Entity ..... 等)对类进行注解时,每个方法都会使用相同的注解进行注解。请解释一下,这对我很有帮助。
【问题讨论】:
标签: java spring-boot
在 Spring Boot 中,当使用一些注解(例如 @Component、@Service、@Entity ..... 等)对类进行注解时,每个方法都会使用相同的注解进行注解。请解释一下,这对我很有帮助。
【问题讨论】:
标签: java spring-boot
您提到的所有注释都是类级别的注释。注释不会被复制,它们只是保留在那里并仅供该元素使用。
如果您看到特定注解的 Javadoc,您会发现所有注解都已使用 @Target 进行注解,其参数为 ElementType。这个枚举定义了注解的类型。
但也有一些注解,如 @Transactional ,由具有此注解的父方法调用的方法使用,并且此注解由提供此功能的 @Inherited 注解引导。
public enum ElementType {
/** Class, interface (including annotation type), or enum declaration */
TYPE,
/** Field declaration (includes enum constants) */
FIELD,
/** Method declaration */
METHOD,
/** Formal parameter declaration */
PARAMETER,
/** Constructor declaration */
CONSTRUCTOR,
/** Local variable declaration */
LOCAL_VARIABLE,
/** Annotation type declaration */
ANNOTATION_TYPE,
/** Package declaration */
PACKAGE
}
我建议你看一下注解的Javadoc,在那里你会发现很多概念。
【讨论】:
注解在最后,java代码从你身上抽象出来。
因此,它将取决于特定注释的实现,无论针对它的代码是适用于每个方法,还是仅适用于类。
@override 仅适用于方法@component 适用于类,行为也会影响封闭方法@PathVariable 仅适用于方法参数进一步丰富你的概念
【讨论】: