SpringCloud项目中可能会用到的注解解释(不定期更新)
@EnableDiscoveryClient
- 贴在启动类上面,开启发现服务,需要在bootstrap文件中配置nacos地址
- 用来让配置中心nacos发现这个服务
@EnableFeignClients
- 贴在启动类上,开启feign服务
- 配合@FeignClient(name = "服务名“,fallback=“回滚类.class”) 使用
- 贴在自定义的接口上 ,接口下的方法可以当作远程服务的方法用,不用实现类
- @RequestMapping注解值跟远程的一样,方法签名最好也一样
- 回滚类需要实现这个接口
- 如需要在sentinel中设置熔断降级,则需要配置sentinel的地址
@MapperScan(basePackages = “mapper.xml和接口的全类名”)
- 贴在启动类上或者配置类上
- 使spring能发现mapper
@ServerEndpoint("/{token}")
- 贴在webSocket的类上,相当于RequestMapping,不适用WebSocket就当作没看见
- @OnOpen
- 贴在此类上表示该方法使浏览器建立连接时调用
- @OnClose
- 表示关闭连接时调用
- @OnError
- 服务器和浏览器通讯过程中出现异常会调用
- @OnMessage
- 收到消息时触发
@RocketMQMessageListener(consumerGroup = “群组名”,topic = ”标题名“)
- 贴在实现 RocketMQListener的类上
- 类里面需要实现onMessage方法,当收到mq的消息时调用
@RequestBody和@RequestParam区别
- @RequestBody是可以是自定义类型的,比如表单,json
- @RequestParam接收的是url上的参数类似 a=1&b=2这种
@RefreshScope
- 一般配合@Value使用,用来动态刷新配置文件,这样在nacos中更改配置问价就不用重新启动
- @Value("${server.port}")
- 可以通过这样来取到配置文件中的值,一般用来解决硬编码问题
- 可以贴字段上也可以直接贴方法参数
@ConfigurationProperties(prefix = “配置文件中的前缀”)
- 贴在类上面或者方法都行
- 用来取配置文件中的值,跟@Value的区别是,不用写表达式,字段跟配置文件中prefix后面的名字一样就行
@LocalTCC
- 贴在需要事务的接口上,表示实现该接口的类被 seata 来管理
- @TwoPhaseBusinessAction(name = “decrIntergralTry”, commitMethod = “decrIntergralCommit”, rollbackMethod = “decrIntergralRollback”)
- 贴方法上,用来指定该方法的触发事务的方法
- name 为 tcc 方法的 bean 名称,需要全局唯一,一般写方法名即可;
- commitMethod 自然地写 Commit 方法的方法名;
- rollbackMethod 写 Rollback 方法的方法名;
- @BusinessActionContextParameter(paramName = “operateIntergralVo”)
- 贴参数上,用来修饰 Try 方法的入参
- 修饰的入参可以在 Commit 方法和 Rollback 方法中通过 BusinessActionContext 获取。
- @GlobalTransactional
- feign进行服务调用,在需要实现全局事务的方法上加上该注解即可
@ControllerAdvice
用来修饰下面3个注解,贴类上
- @ExceptionHandler(异常类.class)
- 用来处理全局异常,发生的该类异常都会调用贴了注解的方法
- 贴在方法上
- @ModelAttribute()
- 用来定义全局变量,可以在RequestMapping方法里面使用
- 贴在方法上
- @InitBinder
- 参数预处理,可以用于日期格式化和 ”空字符串“视为null 等
- 对所有RequestMapping方法里面的参数生效
- 贴在方法上
一些太过于简单常用的没有写,如果需要我可以补上