如何在春季检查请求范围可用性?
2022-09-03 01:49:11
我正在尝试设置一些代码,如果spring的请求范围可用,则以一种方式运行,如果所述范围不可用,则以另一种方式运行。
有问题的应用程序是一个Web应用程序,但是有一些JMX触发器和计划任务(即Quartz)也会触发调用。
例如:
/**
* This class is a spring-managed singleton
*/
@Named
class MySingletonBean{
/**
* This bean is always request scoped
*/
@Inject
private MyRequestScopedBean myRequestScopedBean;
/* can be invoked either as part of request handling
or as part of a JMX trigger or scheduled task */
public void someMethod(){
if(/* check to see if request scope is available */){
myRequestScopedBean.invoke();
}else{
//do something else
}
}
}
假设是请求范围的。myRequestScopedBean
我知道这可以通过 - 围绕的调用来完成,例如:try
catch
myRequestScopedBean
/**
* This class is a spring-managed singleton
*/
@Named
class MySingletonBean{
/**
* This bean is always request scoped
*/
@Inject
private MyRequestScopedBean myRequestScopedBean;
/* can be invoked either as part of request handling
or as part of a JMX trigger or scheduled task */
public void someMethod(){
try{
myRequestScopedBean.invoke();
}catch(Exception e){
//do something else
}
}
}
但这似乎真的很笨拙,所以我想知道是否有人知道一种优雅的Spring方法来询问一些东西,看看请求范围的bean是否可用。
非常感谢!