springcloud常用注解 - 博文强记

springcloud常用注解

小豆丁 1年前 ⋅ 1110 阅读

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的 ⾃动注⼊策略, ⽽使⽤type属性时则使⽤byType⾃动注⼊策略。如果既不指定name也不指定type属性,这时将通过反射机制使⽤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提供的新注解 @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 如果代码中需要动态刷新配置,在需要的类上加上该注解就⾏。但某些复杂的注⼊场景下,这个注解使⽤不当,配置可 能仍然不动态刷新; @FeignClientspringboot调⽤外部接⼝:声明接⼝之后,在代码中通过@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也就是服务鉴活策略等等 常⽤的 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注解。