SpringBoot 注解和核心类大全

SpringBoot 注解和核心类

SpringBoot常用注解

@SpringBootApplication :应用启动类注解,申明springboot自动给程序进行必要配置;这个注解等同于 @Configuration ,@EnableAutoConfiguration 和 @ComponentScan

@EnableAutoConfiguration : SpringBoot自动配置(auto-configuration):尝试根据你添加的jar依赖自动配置你的Spring应用 ;

@ComponentScan : 表示将该类自动发现扫描组件 ;扫描带有 @Component、@Controller、@Service 、@Repository 等这些注解的类,包括@Configuration类 ,并注册为Spring容器管理的Bean; @Autowired注解导入 的Bean就来自于此处的扫描;

**@Bean:**相当于XML中的标签,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

**@Value:**加在参数上,注入Spring boot application.properties配置的属性的值 。

@Component、@Controller、@Service 、@Repository: 放在类上,将此类对象交给spring容器管理,实质都是一样,只是根据类的分工不同,命名上有区别

@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射

@ResponseBody :方法级注解,表明方法的返回值写入http的response body中, 一般在异步获取数据时使用,用于构建RESTful的api ;@RequestMapping注解的方法默认将返回值当作路由信息,进行路径跳转;加上@ResponseBody之后,方法返回值不会解析成跳转路径,回直接被解析为JSON字符串返回请求方,此方法一般配合@RequestMapping注解一起

@RestController :类注解,等同于@Controller和@ResponseBody得效果

@Configuration : 相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。 此类一般用来生成框架运行所需的Bean对象,也可以对产生的Bean对象进行自定义,比如配置shiro的配置,restTemplate的Bean对象;

**@Import:**用来导入其他配置类。

**@ImportResource:**用来加载xml配置文件。

**@Autowired:**自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。

**@Qualifier:**当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用。@Qualifier限定描述符除了能根据名字进行注入,但能进行更细粒度的控制如何选择候选者,具体使用方式如下:

SpringCloud常用注解

Eureka 微服务注册与发现

@EnableEurekaServer: 启动类上,申明此boot应用为一个eureka服务中心

**@EnableEurekaClient:**启动类上,申明此boot项目作为微服务,将被注册到eurekaServer

@EnableDiscoveryClient : 启动类上,申明此boot项目作为微服务,能被调用方发现

Ribbon & Feign 服务调用与负载均衡

@LoadBalanced: 加在配置类的返回RestTemplate Bean的方法上,开启Ribbon负载均衡 ,代表RestTemplate在发起请求时,将按一定负载规则来选用eureka服务中心可用的微服务,即为客户端的负载均衡

@EnableFeignClients: 一般配置在调用微服务的应用的启动类上,Feign类似于对RestTemplate请求java开发的一种优化,使得客户端对微服务的调用更像原先单体项目的Service调用,java开发社区的一种优化,其本质还是用的Ribbon负载均衡的RestTemplate来调用微服务

@FeignClient(value = “service-privider”, fallback = UserFeignClientFallback.class, configuration = FeignConfig.class): 加在API工程的接口类上,指定该类的方法访问的微服务应用的id;在这个接口类中,用@GetMapping("/dept/get/{id}");@PostMapping("/dept/add")等注解来指定调用的微服务url

Hystrix 短路器,服务的熔断与降级

**@EnableCircuitBreaker:**对hystrix熔断的支持,加在微服务的提供应用的启动类上

@HystrixCommand(fallbackMethod = “hystrixGet”):用来做服务熔断,微服务的提供者应用,在方法上加的注解,加上注解的方法会被Hystrix会监控微服务间调用的状况,当失败的调用到一定阀值缺省是5秒内20次调用失败,就会启动熔断机制,请求将不走此方法而访问此类中的异常处理方法hystrixGet;快速失败后,能够根据一定的算法动态试探所依赖对象是否恢复,在重启此方法;

@FeignClient(value = “SPRINGCLOUD-PROVIDER-DEPT”,fallbackFactory = FallBackFactory.class):用来做服务降级,旨在高并发的情况下,不访问指定id的微服务,去访问一个实现了FallbackFactory的子类,用此类的方法,来做虚拟的返回结果,减小微服务服务器的压力;FallbackFactory要实现一个create*方法,此方法要返回一个API接口类的子类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值