Java注解大全

@RestControllerAdvice?

@EnableAspectJAutoProxy 开启AOP,表示开启AOP代理自动配置,如果配@EnableAspectJAutoProxy表示使用cglib进行代理对象的生成;设置@EnableAspectJAutoProxy(exposeProxy=true)表示通过aop框架暴露该代理对象,aopContext能够访问.

从@EnableAspectJAutoProxy的定义可以看得出,它引入AspectJAutoProxyRegister.class对象,该对象是基于注解@EnableAspectJAutoProxy注册一个AnnotationAwareAspectJAutoProxyCreator,该对象通过调用AopConfigUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(registry);注册一个aop代理对象生成器。
@EnableCaching开启spring缓存
也叫元注解,是放在被定义的一个注解类的前面 ,是对注解一种限制。
谈下这两个: @Retention 和 @Target  
@Retention :用来说明该注解类的生命周期。它有以下三个参数:
RetentionPolicy.SOURCE  : 注解只保留在源文件中
RetentionPolicy.CLASS  : 注解保留在class文件中,在加载到JVM虚拟机时丢弃
RetentionPolicy.RUNTIME  : 注解保留在程序运行期间,此时可以通过反射获得定义在某个类上的所有注解。
@Target :  用来说明该注解可以被声明在那些元素之前。
ElementType.TYPE:说明该注解只能被声明在一个类前。
ElementType.FIELD:说明该注解只能被声明在一个类的字段前。
ElementType.METHOD:说明该注解只能被声明在一个类的方法前。
ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前。
ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前。
ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前。
ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前。
@RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量 的构造方法。生成的构造方法是private,如何想要对外提供使用可以使用staticName选项生成一个static方法。

@EnableTransactionManagement开启spring事务管理,

@EnableWebMvc 开启webMvc

@Primary:  意思是在众多相同的bean中,优先使用用@Primary注解的bean.

@Qualifier : 这个注解则指定某个bean有没有资格进行注入

 @Aspect   在类上使用 @Aspect 注解 使之成为切面类

@order,使用注解方式使bean的加载顺序得到控制,@Order标记定义了组件的加载顺序

@order(value=1)

@order(value=2)

值越小,越先被加载。

@Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.

@EnableSwagger2?

@PathVaribale 获取url中的数据

@RequestParam 获取请求参数的值

@GetMapping 组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写

在Lombok中,生成构造方法的annotation一共有三个,@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsContructor。使用这三个annotation来完成项目中对于不同构造方法的需求。

元数据

ElementType.PACKAGE:说明该注解只能声明在一个包名前。

@NoArgsConstructor : 生成一个无参数的构造方法,这个annotation在与其他的annotation配合起来使用的时候更加能凸显出他的重要性,例如在使用hibernate这种框架的时候,如果有一个有参数的构造方法的时候,NoArgsConstructor会展示出他的作用。

@AllArgsContructor:  会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验





你可能感兴趣的:(注解)