Spring Boot框架是基于Spring框架的,因此它也支持Spring框架的所有注解。除此之外,Spring Boot还提供了一些自己的注解来简化开发,以下是Spring Boot框架中常用的注解:
@SpringBootApplication:标注Spring Boot应用的入口类,它包含了@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解。
@RestController:标注一个类是RESTful风格的控制器,它结合了@Controller和@ResponseBody两个注解的功能。
@RequestMapping:用来映射HTTP请求的URL路径和请求方法的注解,可以用在类或方法上。
@PathVariable:用来获取URL中的路径参数的注解。
@RequestParam:用来获取HTTP请求中的请求参数的注解。
@RequestBody:用来获取HTTP请求中的请求体的注解。
@Autowired:自动装配一个Bean实例的注解,可以用在构造方法、setter方法和字段上。
@Value:用来注入配置属性值的注解。
@ConfigurationProperties:将配置文件中的属性映射到一个Java对象中的注解。
@Component:通用的组件注解,标注一个类是Bean组件。
@Service:标注一个类是业务逻辑组件,通常用在Service层。
@Repository:标注一个类是数据访问组件,通常用在DAO层。
@Transactional:用来标注一个方法或类需要进行事务管理的注解。
Spring Cloud是一组基于Spring Boot的微服务框架,它提供了很多注解来简化开发,以下是Spring Cloud中比较常用的注解:
@EnableDiscoveryClient:启用服务发现客户端的注解,用来注册服务到服务注册中心。
@FeignClient:标注一个接口是Feign客户端的注解,可以用来调用其他服务的API。
@LoadBalanced:用来标注RestTemplate实例需要具备负载均衡能力的注解。
@HystrixCommand:用来标注一个方法需要进行Hystrix断路器的注解,当该方法调用失败时,可以提供一个回退方法。
@EnableCircuitBreaker:启用断路器的注解,可以用来监控服务的熔断情况。
@EnableHystrix:启用Hystrix的注解,可以用来在Spring Boot应用中使用Hystrix。
@EnableHystrixDashboard:启用Hystrix Dashboard的注解,可以用来监控Hystrix断路器的状况。
@EnableZuulProxy:启用Zuul代理的注解,可以用来实现服务网关。
@EnableConfigServer:启用配置服务器的注解,可以用来实现分布式配置。
@RefreshScope:用来标注一个Bean实例需要在配置发生变化时刷新的注解。