公司之前使用dubbo接口,相关依赖配置在spring-dubbo-consumer.xml中,以如下形式存在
<dubbo:reference id="AService" interface="com.XX.common.api.AService"/>
在代码文件中直接用@Resource注解注入。
由于有异步需求所以在xml文件中做如下配置
<dubbo:reference id="AService" interface="com.XX.common.api.AService">
<dubbo:method name="getData" async="true" timeout="1000"/>
</dubbo:reference>
后来由于公司推行注解化,将用@Reference对xml中的reference配置进行代替。那么代码文件中将直接用@Reference注解注入service。
我们来看Reference注解的源码
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({
ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})
public @interface Reference {
Class<?> interfaceClass() default void.class;
String interfaceName() default "";
String version() default "";
String group() default "";
String url() default "";
String client() default "";