【问题标题】:How to get the @Qualifier member value? [duplicate]如何获取@Qualifier 成员值? [复制]
【发布时间】:2019-04-12 19:29:29
【问题描述】:

我有一个@InterceptorBinding,其成员值如下:

@Target({ElementType.METHOD, ElementType.TYPE})
@InterceptorBinding
@Retention(RetentionPolicy.RUNTIME)
public @interface Transactional {
    boolean value() default true;
}

还有一个@Interceptor:

@Interceptor
@Transactional
public class TransactionInterceptor {

    @Inject
    private EntityManager em;

    @AroundInvoke
    public Object runInTransaction(InvocationContext invocationContext) throws Exception {

    // here i want get the @Transactional's member value

我是这样使用的:

@Transactional(true)
    public String insertDatatypes(String s1) {

        //some logic
        ...

我的问题是:

是否可以在我的 TransactionInterceptor 类中获取 @Transactional(true) 中使用的值 true

感谢您的帮助

【问题讨论】:

  • 我没有手头的例子,也没有时间搜索 SO 的副本,但是是的,你可以通过反射
  • 感谢您的回答,我会搜索一些反射示例,如果我能解决它,请告诉您,(我是 cdi 的新手)
  • stackoverflow 中没有这个的重复项?

标签: java dependency-injection cdi inject weld


【解决方案1】:

我可以像这样得到会员值

boolean trans = invocationContext.getMethod().getAnnotation(Transactional.class).value();

【讨论】:

猜你喜欢
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多