java—我们如何利用定制的@qualifier方法?

r8uurelv  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(349)

我有很多关于如何实现/使用注解方法的问题。
我们如何利用限定符的方法?假设我有个习惯 @Qualifier 例如。 @Store 它表示一个appstore,有2个方法。如何使用传递给的值 DeviceType deviceType() ?

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface Store {

    String value();

    DeviceType deviceType() default DeviceType.Phone;

    public enum DeviceType{
        Phone, Tablet;
    }

}
你怎么知道的 @Qualifier 内部使用 String value() 为了匹配名字?是否被 String value() 创建自定义 @Qualifier ?
---更新信息如下---
我有一个包含appstore类型字段的服务,它有@autowired和@store注解。在获得ipadappstoreservice的bean之后,如何访问注解中的devicetype过程?

@Service
public class iPadAppStoreService {

....

    @Autowired(required=false)
    @Store(value = "appleAppStore",
    deviceType = DeviceType.Tablet)
    private AppStore applicationStore;

....
}
0qx6xfy6

0qx6xfy61#

我们如何利用限定符的方法?
你给他们打电话。
假设我有个习惯 @Qualifier 例如。 @Store 它表示一个appstore,有2个方法。如何使用传递给的值 DeviceType deviceType() ?

Store storeAnnotation = clazz.getAnnotation(Store.class);
DeviceType deviceType = storeAnnotation.deviceType();

哪里 clazz 是一个用 @Store .
你怎么知道的 @Qualifier 内部使用 String value() 为了匹配名字?
如果 @Autowired 字段/方法/参数按类型查找多个候选项,并且还有一个 @Qualifier 注解(或派生注解,如 @Store ),它将查找已用注解注解的候选类型 @Qualifier 有匹配的 value 元素。
是否被 String value() 创建自定义 @Qualifier ?
是的,那个 @Store 注解的处理方式与 @Qualifier 注解,即其元素值将以相同的方式使用。任何额外的元素值都将被spring忽略,并且仅由您添加的代码使用。

相关问题