在主类上的一些注解:
@SpringBootApplication 用来标注boot项目入口
@EnableEurekaServer 表明自己是一个服务中心Eureka
@EnableEurekaClient与@EnableDiscoveryClient 他们基本作用一样,表明是一个服务提供者client
@EnableFeignClients 调用其他服务api
@FeignClient Feign去消费服务,首先通过@FeignClient实现,Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。
@EnableHystrix 启动熔断服务,当服务出问题时就用到了它
@EnableScheduling 表明这个项目可以使用定时任务
@MapperScan 使用这个注解可以代替@Mapper注解,使用@MapperScan可以指定要扫描的Mapper类的包的路径,可以制定多个,@MapperScan(“com.*”)
@PropertySource 加载指定的属性文件
@ComponentScan() ComponentScan做的事情就是扫描项目,找到@Component,@Controller,@Service,@Repository注解,告诉Spring从哪里找到bean
在类上的注解:
@Mapper mapper类的注解,用在每一个mapper类上。
@ConfigurationProperties(“server”) 类上加上该注解后,就会注入在application.properties中server开头的属性
## @RestController
@RestController注解相当于@ResponseBody + @Controller
区别:单独使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面。若返回json等内容到页面,则需要加@ResponseBody注解
但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面,
@Transactional 声明式事务注解,在spring中添加这个注解就可以开启事务
@Configuration 可理解为用spring的时候xml里面的标签
**@ControllerAdvice **
控制器增强,用来处理异常
@ControllerAdvice是一个@Component,用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法,适用于所有使用@RequestMapping方法。
配合@ExceptionHandler最有用。可以做全局的异常抛出,如果只有@ExceptionHandler,只在本类生效。
在方法上的注解:
@Schedule 定时任务,一般用在具体方法上,有了@EnableScheduling才可以使用这个注解
@RequestMapping 定义请求路径,请求方式
@OpLog
@Autowired 通过类型或者名称找到所需的类
Spring 项目:优先用 @Autowired(尤其是构造方法注入)。
@Resource 按名称注入:用 @Resource(name = “beanName”)。
@Inject 跨框架通用,按名称注入:用 @Inject(需额外依赖 javax.inject)。
@RabbitHandler RabbitMQ 消息监听方法,通常与 @RabbitListener 配合使用,实现 多方法处理不同消息类型 的场景
@RabbitListener
指定某方法作为消息消费的方法,例如监听某 Queue 里面的消息需要与@RabbitHandler搭配使用
@Bean 可理解为用spring的时候xml里面的标签
@Primary 自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
@Scheduled 定时器