Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaee:拦截器和单例,如何在单例con检查之前拦截_Java_Jakarta Ee - Fatal编程技术网

javaee:拦截器和单例,如何在单例con检查之前拦截

javaee:拦截器和单例,如何在单例con检查之前拦截,java,jakarta-ee,Java,Jakarta Ee,在JavaEE中,@Singleton注释通过同步对Singleton线程的访问来确保对Singleton线程的访问安全 现在,我想为这个类使用一个拦截器来测量调用Singleton需要多长时间 我的问题是,在一个线程被允许使用单例之后,拦截器就会被调用。通过这种方式,我只得到一个方法运行的时间,而不知道调用方需要等待多长时间才能访问单例 我基本上想做: Caller ---Interceptor ------Singleton 但只要使用@Singleton和@Interceptor,我就可

在JavaEE中,@Singleton注释通过同步对Singleton线程的访问来确保对Singleton线程的访问安全

现在,我想为这个类使用一个拦截器来测量调用Singleton需要多长时间

我的问题是,在一个线程被允许使用单例之后,拦截器就会被调用。通过这种方式,我只得到一个方法运行的时间,而不知道调用方需要等待多长时间才能访问单例

我基本上想做:

Caller
---Interceptor
------Singleton
但只要使用@Singleton和@Interceptor,我就可以得到:

Caller
---Singleton
------Interceptor

有办法做到这一点吗?

您可以使用@ConcurrencyManagement(ConcurrencyManagementType.BEAN)自己限制对singleton的访问


手动限制必要的访问方法,并在其中包含切入点代码。

当然不能使用jee拦截器。但找到解决方案可能会很有用。wildfly(jboss AS)中有一个很好的容器拦截器,这些拦截器可能会工作。为EJB配置的容器拦截器保证在WildFly提供的安全拦截器、事务管理拦截器和其他此类拦截器之前运行,从而允许用户应用程序特定的容器拦截器在调用进行之前设置任何相关的上下文数据