问题标签 [cdi-2.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
76 浏览

java - 为什么 Glassfish 5.1 容器不调用单例中注入的 CDI 拦截器

在日志文件中记录方法进出的CDI拦截器不是被容器为单例类调用了吗?

这是拦截器:

这是一个使用拦截器的单例类:

最后是 beans.xml:

DataLoaderSessionBean.createData()日志文件中没有方法的方法进入或退出日志。使用调试器,我单步执行代码并且容器没有调用拦截器。虽然拦截器对非单例类工作正常?知道为什么会这样吗?


具有生命周期方法的拦截器似乎存在限制(即@postConstruct它们必须具有),@Target({TYPE})因此我仅为 Singleton 类创建了一个额外的新拦截器接口和一个新拦截器,如下所示:

我将单例更改如下:

但是,该方法没有进入或退出日志createData()吗?