常见的注解

1、@FeignClient
主要用于客户端服务发现,实际就是调用其他的服务。
参数有如下:
value, name:作用一样,如果没有配置url那么配置的值将作为服务名称,用于服务发现。反之只是一个名称。
url:用于配置指定服务的地址,相当于直接请求这个服务,不经过Ribbon的服务选择。像调试等场景可以使用。
备注:只加了该注解,bean不会自动创建,不会纳入springioc容器的,还需要在启动类上加注解@EnableFeignClients,该注解负责注册用feignclient标记的客户端
2、@EnableFeignClients
参数有如下:
basePackages:指定需要扫描的包路径

一般情况下,我们在启动类上面添加了@EnableFeignClients注解就是表明当前应用服务(我们称之为服务A)中有的地方想要引用其它应用服务(我们称之为服务B)中的接口。
如果服务B可以单独启动起来并且注册到注册中心,则我们仅仅在服务A的启动类中添加@EnableFeignClients注解即可;如果服务B没有单独启动起来,而是以Jar包的形式被引入到服务A中,则服务A在启动的时候是不会主动去加载服务B中标注了@FeignClient注解的interface而去自动生成bean对象,这样我们在服务A中的Controller类中以如下这种方式去引入使用服务B中的标注了@FeignClient注解的接口 是会报错的,这个时候就需要使用basePackages属性字段去指明应用程序A在启动的时候需要扫描服务B中的标注了@FeignClient注解的接口的包路径
package com.haha.dde.salc.pub.seq; @Configuration @EnableFeignClients(basePackages = "com.haha.bits.idservice.api.dependency") public class SequenceConfig {}----------------------------------------------------------------------------------package com.haha.bits.idservice.api.dependency; @ResponseBody @FeignClient(name = "idservice-client",url = "${feign.client.config.idservice.url}") public interface IIdServiceClient { @PostMapping({"/api/idservice/getsequence"}) long getSequence(@RequestParam("key") String var1); }

工作原理:https://www.csdn.net/tags/NtzacgxsMjc0ODctYmxvZwO0O0OO0O0O.html
3、@Autowired
依赖注入Bean
使用@Autowired注入和applicationContext.getBean获取对象的区别?
---单例模式下(默认情况下):
Autowired与getBean两种方式没有区别,获取的都是同一个对象。
---多例模式下:
Autowired是使用的同一个对象,而getBean就是创建的一个新对象。
参考:https://blog.csdn.net/baidu_36528788/article/details/81237922
解决@Scope(“prototype“)不生效_梦想blog的博客-CSDN博客_@scope prototype
【常见的注解】

    推荐阅读