注解大全(持续更新)

   该文章描述平生所使用的注解,会一直不断的进行迭代更新,可能有些常用注解没有更新,不过一旦发现,会立马进行补充,如果需要找某些注解,直接ctrl+f进行搜索即可,好了废话不多说,直接上硬货。

注解说明
@DeleteMapping(value=”xx”)通过delete方式进行请求
@EnableEurekaServerEureka所依赖的注解,用于标注在启动类中,告诉容器该项目是Eureka服务端
@EnableEurekaClientEureka所依赖的注解,用于标注在启动类中,使该项目注入到eureka服务中心中
@EnableZuulProxyZuul所依赖的注解,用于标注在启动类中,这样zuul的配置才可以被容器识别
@EnableDiscoveryClient服务发现注解,它的作用和@EnableEurekaClient类似,但是它不仅仅可以注入到eureka中,也可以注入到nacos中,用于标注在启动类中。
@EnableConfigServerSpring Cloud Config所依赖的注解,用于标注到启动类中,告诉容器该项目是Spring Cloud Config 服务端。
@SpringBootApplicationSpringBoot启动类所依赖的注解,用于启动SpringBoot类。
@ResponseBody用于标注在控制类中的方法上,可以使方法返回的数据显示在body主体中。
@RestController用于标注在控制类中,作用和@Controller注解类似,但是它会在每个方法上默认添加@ResponseBody。
@Value(“xx”)用于标注在属性上,作用是读取配置文件中的某个属性值,xxx代表配置文件中的属性名称,例如:value=“${server.port}”,获取配置文件中的端口号。
@RequestMapping(value=”xx”)用于标注在控制类中的方法上,然后指定路径,这样如果url访问路径和该路径一样的话就会被容器接收并且映射过来。
@PostMapping(value=”xx”)通过post方式进行请求
@PutMapping(value=”xx”)通过put方式进行请求
@GetMapping(value=”xx”)通过get方式进行请求
@QueryParam(value=”xx”)和@RequestParam参数功能类似
@RequestParam(value=”xx”)用于标注在控制类中方法中的形参上,接收请求路径所传的值,xx要指定参数名称。
@PathVariable(value=“xx”)用于标注在控制类中方法中的形参上,和@RequestParam类似,但是它是用于完成Rest风格的注解,举例说明:在这里插入图片描述
@Configuration用于标注在配置类上,告诉容器该类是配置类,不过需要和组件扫描一起使用才能够被容器识别,如果要是和@SpringBootAppliation启动类同一个包或子包下,就不需要使用组件扫描了,因为@SpringBootApplication的底层代码自带组件扫描注解。
@Bean用于标注在方法上,作用是:将方法返回的对象注入到容器中。
@Autowired用于标注在对象上,作用是:获取容器中与该对象对应的对象。
@Service用于标注在service层的实现子类中,作用是:告诉容器该类是实现类,并将该对象返回到容器中。
@Mapper用于标注在dao层的接口中,作用是:与Mapper.xml文件映射。
@MapperScan(value=“com.hill.org”)用于标注在启动类中,作用是:不用在dao层的接口上一个一个的添加@Mapper注解了,而是可以通过@MapperScan注解指定value的包名称,直接扫描包即可。
@HystrixCommand(fallbackMethod=“xx”)用于标注在控制类中的方法上,作用是:提供备选响应,如果客户端访问该方法的时候出现了故障,那容器就会将备选响应方法返回到客户端中。fallbackMethod属性的值就是被指定的备选响应方法。图片举例:在这里插入图片描述
@EnableCircuitBreakerHystrix的所依赖的注解,用于标注在启动类中,这样@HystrixCommand注解才可以被容器识别。
@FeignClient(value = “微服务实例名称”,fallbackFactory=类名称.class)Feign所依赖的注解,用于标注在提供数据接口中,通过接口绑定服务,value属性则就是要绑定的微服务实例名称,而fallbackFactory则是备选响应仓库,这个属性可添加也可不添加。举例说明:在这里插入图片描述在这里插入图片描述
@EnableFeignClients(basePackages=”包名称”)Feign所依赖的注解,用于标注在启动类
@Component用于标注在类上面,作用是:容器会扫描该类,发现该类。
@ComponentScan(value=”包名称”)用于标注在启动类上,作用是:不用一个一个的添加
@RibbonClient(value=”微服务实例名称”,configration=类名称.class)Ribbon所依赖的注解,标注在启动类中,作用是:负载均衡,value属性值是微服务实例名称,而configration则是自定义的算法类,默认算法为轮询法。
@LoadBalanced用于标注在RestTemplate对象上面,与Ribbon同一个系列,通过RestTemplate对象完成负载均衡。在这里插入图片描述在这里插入图片描述在这里插入图片描述
@EnableAdminServer用于标注在启动类中,作用是告诉容器该服务是SpringBootAdmin的服务端。
@EnableZipkinServer用于标注在启动类中,作用是告诉容器该服务是Zipkin服务端,监控着其他子微服务。
@Profile(“xx”)用于标注在类上,属于一个类的标识经常和@Configuration,在配置文件中可通过spring.active.profile来读取@profile标识的类
@EnableGlobalMethodSecurity(seucirtyEnable=true)用于标记在配置类上,或启动类上,其作用是支持@PostAuthorize、@PreAuthorize、@Secured注解
@Securedsecurity系列注解,用于标注在方法上,其作用是校验指定的权限,注意:需要由ROLE前缀开头,例如:@Secured(“ROLE_ADMIN”,“ROLE_USER”)
@PostFiltersecurity系列注解,用于标注在方法上,其作用是访问指定方法后(如果访问方法需要权限的话,那么就视为权限校验后)对传递过来的数据进行过滤,满足条件才可触发返回值
@PreFiltersecurity系列注解,用于标注在方法上,其作用是访问指定方法前对传递过来的数据进行过滤,满足条件才可触发返回值
@PostAuthorizesecurity系列注解,用于标注在方法上,其作用是在访问方法后进行校验,校验当前访问者是否有权限,例如:@PostAuthorize(“hasAnyAuthority(‘read’)”)
@PreAuthorizesecurity系列注解,用于标注在方法上,其作用是在访问方法前进行校验,校验当前访问者是否有权限,例如:@PreAuthorize(“hasAnyAuthority(‘read’)”)
@Scheduled(cron = “0/5 * * * * *”)用于标注在方法上,定时任务注解,cron表达式的值是比较特殊的,所以赋值的时候建议网上自动生成。
@Api(tags = “xxxx”)用于标注在控制类上,swaager系列的参数,tags代表标题,可以标示控制类以便测试时方便查找
@ApiOperation(value=“xx”,notes=“”)用于标注在方法上,swagger系列的参数,value属性代表的是某个方法的标题,notes代表的是某个方法的详细说明
@ApiImplicitParam(value=“x”,name=“xx”)用于标注在方法上,swaager系列参数,value代表的是属性名称,name代表的是属性名称的说明
@ApiImplicitParams({@ApiImplicitParam})用于标注在方法上,swaager系列参数,可包含多个@ApiImplicitParam,多个值用逗号隔开。
@Param(“xxx”)用于标注在形参上,一般在持久层标记,可告知容器该参数是和某个形参映射
@Select(value=“”)用于标记在方法上,注解版select查询语句
@Delete(value=“”)用于标记在方法上,注解版delete删除语句
@Insert(value=“”)用于标记在方法上,注解版insert插入语句
@Update(value=“”)用于标记在方法上,注解版update更新语句
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)用于标注在属性上,属性为参数时,将参数值格式化为指定日期格式。
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)用于标注在属性上,属性为映射值时,将值格式为指定日期格式并返回给视图层
@PropertySource(“classpath:xxxx”)用于标注在类上,classpath代表的是某个配置文件路径,将该配置文件的属性与当前类的属性值映射
@ExcelProperty(index = 0,value=“”)用于标注在属性上,阿里巴巴easyexcel系列注解,index代表该属性在列0显示,value代表该属性的列头名称。
@EnableRedisHttpSession(
maxInactiveIntervalInSeconds=“”,
redisNamespace=“”,
redisFlushMode=“”)
用于标注在类上,springssesion系列注解,属性1代表会话时长,属性2代表redis库中的存储会话系列命名空间,属性3代表reids的刷新模型,该注解用于将会话存储,实现多服务下会话一致场景。
@EnableSwaggerBootstrapUIswagger系列注解,用于标注在启动类上,这样方可通过swagger进行测试。
@EnableSwagger2swagger系列注解,和@EnableSwaggerBootstrapUI一同标注在启动类上,这样方可通过swagger进行测试。
@JsonInclude(JsonInclude.Include.NON_NULL)用于标注在实体类上,如果属性返回格式为json时,并且属性值为空的话,是不会显示为空的属性值。
@EnableAutoConfiguration用于标注在类上,自动开启配置,多数用于配置类中。
@Import导入某依赖类,自制注解时所使用。
@Conditional@Conditional系列参数很多很多,该注解属于条件注解,例如:满足xx会加载该类,不满足xx,会加载该类等等,底层会见到或自制注解及某些特定场景。
@ConditionalOnBean该注解属于判断性注解,用于标注在方法上或类上,其作用:当前依赖bean如果未加载的话则不会加载该注解标记的类或方法,和@DependsOn注解类似
@ConditionalOnProperty(prefix = “mq”,name = “enable”,havingValue = “true”,matchIfMissing = true)该注解属性判断性注解,用于标注在方法上或类上,其作用:prefix和name属性用于表示应检查的配置属性,组合在一起的含义则是mq.enable(会扫描配置文件中是否有该值),而havingValue则代表属性值需要等于"xx值",matchlfMissing则代表是否开启匹配,如果该注解满足条件则会触发将当前类或方法进行依赖注入
@DependsOn(“bean名称”)该注解采用的是观察者模式(订阅/发布)一般用于方法上或类上,其作用:先加载该注解中指定的bean后再加载当前注解标记的方法或类
@Testjunit系列注解,用于标注在方法上,简单的测试方法
@Afterjunit系列注解,用于标注在方法上,当执行被@Test注解标记的方法之后。执行该注解标记的方法。
@After()aop系列注解,用于标注在方法上,在切入点后触发执行,用于后置通知
@AfterReturningaop系列注解,用于标注在方法上,在切入点后触发执行,后置通知可以获取形参进行操作
@AfterThrowingaop系列注解,用于标注在方法上,在切入点后触发执行,后置通知可以获取异常信息进行操作
@Beforejunit系列注解,用于标注在方法上,当执行被@Test注解标记的方法之前,执行该注解标记的方法。
@Beforeaop系列注解,用于标注在方法上,在切入点前触发执行,用于前置通知。
@Scope(value=“prototype”)用于标注在类、方法上,配置bean的作用域
@SneakyThrowslomback系列注解,用于标注在方法上,类似于对该方法进行try-catch
@PropertySource用于标注在启动类中,一般用于加载自定义的配置文件
@EnableDubbo用于标注启动类上,启动dubbo系列注解(底层含带dubbo的注解扫描)
@Reference用于标注在对象上,指该对象引用dubbo对外暴露的接口
@Service用于标注在类上,该注解是dubbo系列注解,作用是指该类是暴露接口的实现类
@ImportResource(locations = “classpath:”)用于标注在启动类中,作用是将配置文件加载到容器中
@Path()用于标注在方法上或类上,其作用类似于@RequetMapping,指定资源的地址
@Produces(value=“application/json;charset=utf-8”)用于标记在方法上面,多用于设置返回数据的字符集等
@Retention用于标注在注解接口上,指定注解注入容器的周期(java编译前、编译后、运行时)
@Nullable用于在参数上,或属性上,代表该参数或该属性的值可以为空
@Nonnull用于在参数上,或属性上,代表该参数或该属性的值不可以为空
@RolesAllowed(字符串或字符串数组)用于标记在方法上,security系列注解,代表该方法只能被指定的角色权限访问
@Scheduled(cron = "0 0/10 * * * ? ")用于标记在方法上,SpringBoot的定时任务,联合cron表达式
@EnableAsync用于标记在配置类上,表示以异步的方式执行
@Log4j用于标注在配置类上,lombok系列注解
@Qualifier(“”)用于标记在对象上,用来区分依赖容器中的哪个bean
@Primary用于标记在方法上,其含义是主要的,当某个对象依赖较多时,标记该注解会起到首选作用,一般和@Bean同时使用,指该对象是首选对象,除非通过@Bean(valus=“xxx”)的方式指定名称使用,否则标记@Primary
@TableNamemybatis-plus系列,标记在类名上,其作用为与表名称对应
@TableIdmybatis-plus系列,标记在字段上,其作用为标记表id
@TableFieId(“字段”)mybatis-plus系列,标记在字段上,其作用标记表字段
@KeySequencemybatis-plus系列,标记在类名上,其作用为设置主键类型
@Getterlombok系列注解,标记在方法或类上,get构造器
@Setterlombok系列注解,标记在方法或类上,set构造器
@RequiredArgsConstructorlombok系列注解,类似于@Autowired注解,只是比@Autowired更加简洁化,只需要标记在类上面,然后该类中声明的对象以final定义即可在容器中识别指定的对象,注意:必须要用final定义才可以
@NotNull验证系列注解,用于标注在属性上,可以对该属性进行非空校验以及值比较并且还可以设置不满足条件后的提示信息
@Null验证系列注解,用于标注在属性上,代表当前该属性不能为空
@AssertFalse验证系列注解,用于标注在属性上,代表当前该属性值为false
@AssertTrue验证系列注解,用于标注在属性上,代表当前该属性值为true
@Max(value)验证系列注解,用于标注在属性上,代表当前属性值不可大于指定的数值
@Min(value)验证系列注解,用于标注在属性上,代表当前属性值不可小于指定的数值
@Size(max,min)验证系列注解,用于标注在属性上,代表当前属性值字符长度要在min和max之间,min和max属性有默认值
@NotEmpty验证系列注解,用于标注在属性上,代表当前属性值(对象或集合或数组等)不为null且不为空
@Aroundaop系列注解,标记在方法上,增强处理
@Aspectaop系列注解,标记在类上,代表该类为切入类
@Pointcutaop系列注解,标记在方法上,表示aop的切入点
@Retention(RetentionPolicy.RUNTIME)自定义注解所需,标记在自定义注解上,代表运行时触发
@Target(ElementType.METHOD)自定义注解所需,标记在自定义注解上,目标源为方法,指定类型标记
@EnableAspectJAutoProxyaop系列注解,标记在启动类中,开启自动注入切面代理开关
@PreAuthorize(“hasAuthority(‘memberDetail’)”)security系统注解,标记在方法上,如果不是当前xxx用户则没有权限访问
@Consumes设置MIME格式,符合参数设置的请求才可以访问到这个资源。如@Consumes(“application/json;charset=UTF-8”)
@Produces设置MIME格式,按照指定格式进行饭hi数据。如@Produces(“application/json;charset=UTF-8”)
@Resource(“”)属性值可填,可不填,如果不填写的话则按照对象类型进行装配,如果填写的话,则按照@Bean注入的属性名进行装配
@RequiresPermissions(“xx:xx:xx”)认证系列注解,用于放在类或方法上,表示只有指定权限才可以访问
@TableField(“绑定的列名称”)mybatisplus系列注解,用于标记在属性值上
@TableIdmybatisplus系列注解,声明属性为表中的主键
@Order(Ordered.HIGHEST_PRECEDENCE)用于标记在类上,其作用是配置类的优先级顺序,Order的值越小,其加载顺序越高
EnableOAuth2Ssooauth2系列注解,实现了oauth2的单点登录
@EnableResourceServeroauth2系列的注解,其底层是将ResourceServerConfiguration.class注入到容器仲
@EnableWebSecurity(debug=true)security系列注解,其底层依赖就是以下的2个注解,debug=true代表会在控制台中输出security过滤器的信息
@EnableGlobalMethodSecuritysecurity系列的注解,其底层引入了@EnableGlobalAuthentication,作用的话是加载一些配置类,具体配置类自己查看
@EnableGlobalAuthenticationsecurity系列的注解,其底层是将AuthenticationConfiguration.class注入到容器中
@AutoConfigureBefore({类名称,类名称})Spring系列注解,用于配置类中,它可以指定某些类的加载时在当前配置类之前加载的
@AutoConfigureAfter({类名称,类名称})Spring系列注解,用于配置类中,它可以指定某些类的加载时在当前配置类之后加载的
@AutoConfigureOrder(数值)Spring系列注解,用于配置类中,设置配置类的加载顺序
@ConditionalOnClass(类名称)Spring系列注解,用于配置类中,只有当某个类存在时,它标记的类才会触发
@ConditionalOnMissingBean(类名称)Spring系列注解,用于配置类或方法上,当某个类已经存在时,就不会执行以下方法或类
@ConditionalOnProperty(前缀以及属性名等)spring系列注解,用于方法上或配置类上,当某个属性存在时,可触发条件
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值