SpringCloud常⽤注解总结
公司正在⽤springcloud微服务改造⽼项⽬,为了⽅便查和学习,汇总⼀些常⽤的注解。使⽤过程中定期更新。
SpringCloud常⽤注解总结:
@Controller 控制层,⾥⾯有多个连接
@Service 业务层,⼀般对于接⼝和实现
@Qualifier 如果⼀个接⼝有多个实现,那么注⼊时候加上唯⼀标⽰
@Repository ⼀般的dao层
@Autowired ⾃动注⼊依赖
@Resource bean的注⼊,同Autowired 有相同的功能。
说明:
共同点:@Resource和@Autowired都可以作为注⼊属性的修饰,在接⼝仅有单⼀实现类时,两个注解的修饰效果相同,可以互相替换,不影响使⽤。
不同点:
@Resource是Java⾃⼰的注解,@Resource有两个属性是⽐较重要的,分是name和type;Spring将@Resource注解的name属性解析为bean的名字,⽽type属性则解析为bean的类型。所以如果使⽤name属性,则使⽤byName的⾃动注⼊策略,⽽使 @Autowired是spring的注解,是spring2.5版本引⼊的,Autowired只根据type进⾏注⼊,不会去匹配name。如果涉及到type⽆法辨别注⼊对象时,那需要依赖@Qualifier或@Primary注解⼀起来修饰。
@Component定义其它组件(⽐如访问外部服务的组件)
@RequestMapping (value=’’,method={RequestMethod。GET或者POSt})绑定url
@RequestParam (value=’’ required=false)绑定参数,将客户端请求中的参数值映射到相应⽅法的参数上;
@ModelAttribute ⼀般⽤于controller层,呗注解的⽅法会在所以mapping执⾏之前执⾏,并且可以绑定参数到Model model⾥⾯。
@Transactional (readOnly=true)注解式事务
@TransactionalEventListener⽤于配置事务的回调⽅法,可以在事务提交前、提交后、完成后以及回滚后⼏个阶段接受回调事件。
@Value(“${}”)可以注⼊properties⾥⾯的配置项
@ControllerAdvice 是spring3提供的新注解
springcloud难学吗@ExceptionHandler 如果在controller⽅法遇到异常,就会调⽤含有此注解的⽅法。
@InitBinder ⼀般⽤于controller 可以将所以form 讲所有传递进来的string 进⾏html编码,防⽌xss攻击,⽐如可以将字符串类型的⽇期转换成date类型
@EnableCaching 注解⾃动化配置合适的缓存管理器。
@EnableWebSecurity 注解开启spring security的功能,集成websercrityconfigureadapter。
@SringBootApplication相当于@configuration,@EnableAutoConfiguation @ComponentScan三个注解合⽤。
@EnableDiscoveryclient 注册应⽤为Eureka客户端应⽤,以获得服务发现的能⼒
@EnableAdminServer 使⽤admin监控应⽤。
@EnableEurekaClient配置本应⽤将使⽤服务注册和服务发现,注意:注册和发现⽤这个注解。
@EnableEurekaServer 启动⼀个服务注册中⼼
@EnableHystrix表⽰启动断路器,断路器依赖于服务注册和发现。
@HystrixCommand注解⽅法失败后,系统将西东切换到fallbackMethod⽅法执⾏。指定回调⽅法
@EnableAutoConfiguration spring boot⾃动配置,尝试根据你添加的jar依赖⾃动配置你的spring应⽤。
@ComponentScan 表⽰将该类⾃动发现并注册bean 可以⾃动收集所有的spring组件
@Comfiguration 相当于传统的xml配置⽂件
@Import 导⼊其他配置类
@ImportResource⽤来加载xml配置⽂件
@FeignClient注解中的fallbank属性指定回调类
@RestController 返回json字符串的数据,直接可以编写RESTFul的接⼝;
@CrossOrigin 可以处理跨域请求,让你能访问不是⼀个域的⽂件;
@ApiOperation ⾸先@ApiOperation注解不是Spring⾃带的,它是是swagger⾥的注解@ApiOperation是⽤来构建Api⽂档的@ApiOperation(value = “接⼝说明”, httpMethod = “接⼝请求⽅式”, response = “接⼝返回参数类型”, notes = “接⼝发布说明”;@SpringBootApplication  申明让spring boot⾃动给程序进⾏必要的配置,等价于以默认属性使⽤@Configuration,@EnableAutoConfiguration和@ComponentScan;
@RefreshScope 如果代码中需要动态刷新配置,在需要的类上加上该注解就⾏。但某些复杂的注⼊场景下,这个注解使⽤不当,配置可能仍然不动态刷新;
@FeignClient springboot调⽤外部接⼝:声明接⼝之后,在代码中通过@Resource注⼊之后即可使⽤。@FeignClient标签的常⽤属性如下:name:指定FeignClient的名称,如果项⽬使⽤了Ribbon,name属性会作为微服务的名称,⽤于服务发现url: url⼀般⽤于调试,可以⼿动指定@FeignClient调⽤的地址decode404:当发⽣http 404错误时,如果该字段位true,会调⽤decoder进⾏解码,否则抛出FeignException
configuration: Feign配置类,可以⾃定义Feign的Encoder、Decoder、LogLevel、Contractfallback: 定义容错的处理类,当调⽤远程接⼝失败或超时时,会调⽤对应接⼝的容错逻辑,fallback指定的类必须实现@FeignClient标记的接⼝fallbackFactory: ⼯⼚类,⽤于⽣成fallback类⽰例,通过这个属性我们可以实现每个接⼝通⽤的容错逻辑,减少重复的代码path: 定义当前FeignClient的统⼀前缀
@EnableFeignClients 开启Spring Cloud Feign的⽀持
@EnableCircuitBreaker 开启断路器功能
@LoadBalanced 开启客户端负载均衡
@WebAppConfiguration 开启Web 应⽤的配置,⽤于模拟ServletContext
@RibbonClient,这个注解⽤来为负载均衡客户端做⼀些⾃定义的配置,可以进⼀步配置或⾃定义从哪⾥获取服务端列表、负载均衡策略、Ping也就是服务鉴活策略等等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
常⽤的 lombok 注解:
@EqualsAndHashCode    实现equals()⽅法和hashCode()⽅法 @ToString:实现toString()⽅法
@Data           注解在类上;提供类所有属性的 getting 和 setting ⽅法,此外还提供了equals、canEqual、hashCode、toString ⽅法
@Setter          注解在属性上;为属性提供 setting ⽅法
@Getter          注解在属性上;为属性提供 getting ⽅法
@Log4j           注解在类上;为类提供⼀个属性名为log 的 log4j ⽇志对象
@NoArgsConstructor    注解在类上;为类提供⼀个⽆参的构造⽅法
@AllArgsConstructor    注解在类上;为类提供⼀个全参的构造⽅法
@Cleanup        关闭流
@Synchronized:对象同步
@SneakyThrows:抛出异常
@ConfigurationProperties    把同类的配置信息⾃动封装成实体类:可以使属性⽂件中的值和类中的属性对应起来;使⽤⽅式有两种 :  1、在类上使⽤该注解  2、在⼯⼚⽅法上使⽤该注解(@bean)注意:在springBoot中除了使⽤这个注解读取属性⽂件值外,还可以⽤@Value注解。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。