如何在 Spring 中检查 Request Scope 的可用性?

2024-01-10

我正在尝试设置一些代码,如果 spring 的请求范围可用,这些代码将以一种方式运行,如果所述范围不可用,则以另一种方式运行。

所涉及的应用程序是一个 Web 应用程序,但有一些 JMX 触发器和计划任务(即 Quartz)也会触发调用。

E.g.

/**
 * 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, e.g.:

/**
 * 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 是否可用。

非常感谢!


您可以使用此处描述的 if 检查

SPRING - 获取当前范围 https://stackoverflow.com/questions/24166052/spring-get-current-scope

if (RequestContextHolder.getRequestAttributes() != null) 
    // request thread

而不是捕获异常。 有时这看起来是最简单的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Spring 中检查 Request Scope 的可用性? 的相关文章

  • 如何将抽象工厂与单例模式结合起来? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在用 java 编码 并且对这些模式很陌生 谁能给我一个也使用单例的工厂抽象的例子 这是一个实现类的示例单例模式 这个实现也是线程安全
  • 初始堆大小无效。无法创建Java虚拟机

    我遇到了下一个问题 我尝试通过startup bat手动启动Tomcat 但似乎没有显示任何结果 然后我尝试运行shutdown bat 控制台显示如下 D apache tomcat 7 0 35 bin gt startup bat U
  • 从字符串生成密钥?

    我需要从字符串生成一个密钥 以便我始终可以从同一字符串创建相同的密钥 具体来说是一个Key对象 这样我就可以用它来创建Cipher进而创建SealedObject 这在 Java 中可行吗 我应该考虑什么类 方法组合才能做到这一点 对于 A
  • 使用 Hibernate Dialect 设置表字符集/排序规则?

    我使用 Hibernate MySQLInnoDB Dialect 来生成 DDL hibernate cfg xml
  • Android 游戏偶尔出现延迟

    我正在用 Java 制作一个简单的 Android 游戏 我注意到每 20 40 秒就会出现一些烦人的延迟 首先 我认为它们是由垃圾收集器引起的 但当我检查 LogCat 时 我发现游戏滞后时没有垃圾收集 每当游戏开始滞后时 我都会标记日志
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 如何在 Java 中使用 StringUtils?

    我是 Java 初学者 我想用StringUtils replace但 Eclipse 输出 StringUtils cannot be resolved I tried import java lang 但它不起作用 java lang不
  • SwingWorker 在另一个 SwingWorker 的 did 方法中

    首先 我需要通知您 我正在尽最大努力学习如何用 Java 编写代码 虽然有点困难 但我相信我能做到 我过去提交了几个有关 SwingWorkers 等的问题 每一个我都以为我已经做到了 但后来发现我仍然需要学习 希望这一次不是那样的一次 话
  • Java 中的 MP4 容器编写器

    我想找到一个免费的 Java MP4 容器 编写器 我不需要编码器 只需要能够根据预期值写入正确原子的编码器 Bonus对于这样一个库 也可以编写 有效 F4V 我更喜欢纯 Java 解决方案 而不是使用 JNI 或外部可执行文件的解决方案
  • 如何在Java中打印保留2位小数的浮点数?

    我可以用System out print 您可以使用printf http java sun com j2se 1 5 0 docs api java io PrintStream html printf 28java lang Strin
  • Spring Data JPA 中的审计和 @Embedded

    我在 JPA 审计方面遇到问题 Embedded成员 考虑以下示例场景 我在 Oracle DB 中设置了一个测试表 CREATE TABLE AUDIT TEST ID NUMBER 38 NOT NULL PRIMARY KEY CRE
  • 两条腿的 OAuth 和 Gmail Atom feed

    我们正在尝试让 2 legged OAuth 与 Gmail Atom feed 一起使用 我们使用 John Kristian Praveen Alavilli 和 Dirk Ba lfanz 贡献的 Java 库 http oauth
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • java中日期转换dd-MMM-yyyy到dd-MM-yyyy

    在Java中将23 Mar 2011转换为23 03 2011的最简单方法是什么 感谢大家 这似乎解决了这个问题 try Calendar cal Calendar getInstance cal setTime new SimpleDat
  • bufferedinputstream 中标记读取限制有什么用

    我是Java流的新手 我想读取特定的文件内容 然后需要从头开始读取 我创建了一个 BufferedInputStream 但我对 BufferedInputStream mark int markLimit 的文档感到困惑 文档说 publ
  • 如何在Java中模拟引用传递?

    我是一个十足的 Java 菜鸟 我知道 Java 将所有参数视为按值传递 并且还有其他几个线程人们对此进行了解释 例如 在 C 中我可以这样做 void makeAThree int n n 3 int main int myInt 4 m
  • Java 验证日期为 yyyyMMddHHmmss

    我想在java中验证给定的日期格式为yyyyMMddHHmmss 状况 应符合格式 yyyyMMddHHmmss 它应该验证当前日期 它应该验证与当前小时有 3 小时或 3 小时差异的小时数 如果满足所有三个条件 Java 方法应返回 tr
  • ASTParser:解析绑定后查找声明节点

    我创建了一个启用了绑定的 AST 当我稍后解析绑定时 我得到了一个有效的 ITypeBinding 但是 当我想要获取绑定的声明 Node 时 它 总是返回 null 除非 ITypeBinding 在 sourceFile 中声明 这是我
  • Spring Transactional 减慢了整个过程

    我正在尝试分析我有两堂课的情况 其中一个类是 ProcessImpl 它是起点并在内部调用其他子事务 我不知道出了什么问题 processImpl正在导入一些东西并将相关数据写入数据库 Specs Spring orm版本 3 2 18 发
  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv

随机推荐

  • Excel vba - 禁用鼠标事件

    我正在开发一个Excel 2010工作簿 处于手动公式计算模式 文件 gt 选项 gt 公式 gt 工作簿计算 gt 手册 但是 我想要一些菜单选项来导致工作簿的重新计算 所以我使用以下代码 Private Sub Worksheet Ch
  • 突出显示 SWT 树节点中的特定字符串

    我有一个要求 首先要加载树 树包含 4 个级别 有一个文本字段 用户可以在其中输入 filterText 然后可以按搜索按钮 在树中 在四个级别中的任何一个中 如果与过滤器文本匹配 则该特定字符串仅应以黄色突出显示 而不是整个节点及其相应的
  • 如何阻止固定对象超出其父容器?

    我目前正在为学校制作一个网站 在该网站上我有一个带有链接的侧边栏 我希望它在侧面的任何地方都可见 所以我使用了position fixed 但现在它不再保留在其父级的空间内 而是从页面的最顶部开始 h1 text align center
  • 是否有一种校验和算法也支持从中“减去”数据?

    我有一个包含大约 1 亿个文档的系统 我想跟踪它们在镜像之间的修改 为了有效地交换有关修改的信息 我想按天发送有关修改文档的信息 而不是按每个单独的文档发送 像这样的事情 2012 03 26 cs26 2012 03 25 cs25 20
  • Android - 延迟加载图像

    我正在尝试伪造某种进度条 我有 X 张图片并想要一张ImageView以一定的延迟向他们展示 我尝试过做这样的事情 for i 2 i
  • 关于如何正确重写 object.GetHashCode() 的一般建议和指南

    根据MSDN http msdn microsoft com en us library system object gethashcode aspx 哈希函数必须具有以下属性 如果两个对象比较相等 则每个对象的 GetHashCode 方
  • 在代码中组合 WPF DataTriggers 和 Storyboard

    这是试图解决我之前的问题 https stackoverflow com questions 5826828 how to start stop animation in user control from view model以不同的方式
  • Android平台如何打开“前置摄像头”?

    更一般地说 如果一台设备有多个嵌入式摄像头 有没有一种方法可以特别初始化其中一个 我在Android参考文档中没有找到它 https developer android com reference android hardware Came
  • pycurl 仅获取部分响应

    我正在使用 pycurl 在 python 中向 URL 发出请求 该 URL 返回相当大的 json 格式响应 当我在浏览器中转到 URL 时 我会看到全部内容 但如果我使用 pycurl 并打印接收到的数据 我只能看到浏览到 URL 时
  • BitmapImage解码速度性能wpf

    我有 5 张图像 像素高度和像素宽度都相同 2481 3508 但是 一张是 gif 一张是 jpeg 一张是 png 一张是 bmp 现在 我将它们渲染到 BitmapSource 中 其中 1 DecodePixelHeight 原始像
  • 如何使用 Swig 将枚举值从 TCL 脚本传递到 C++ 类

    我正在使用以下代码 1 文件 example i module example Put header files here or function declarations like below include example h incl
  • 从 NUnit TestContext 检索测试持续时间

    我希望能够在我的测试代码中访问测试的持续时间 我一直在看TestContextNUnit 中的类 但是当我找到有关 FullName 的信息时 我无法弄清楚在哪里访问测试的持续时间 TearDown public void TearDown
  • 如何在html中标记图片的版权?

    这主要是一个语义问题 我想把有版权的图片放在网站上 我知道figure和figcaption元素 但figcaption似乎不是最好的标签 这是我也需要的标题 如果我有这样的图像
  • 我可以在内容加载之前更改或控制 IFRAME 区域的颜色吗? [复制]

    这个问题在这里已经有答案了 可能的重复 fb 之类的按钮会在所有 ie 版本中的页面加载上创建白色背景 https stackoverflow com questions 6438502 fb like button creates a w
  • 如何将输入值传递到 Angular 6 中表单提交的函数中?

    所以当我按回车键时我的代码就可以工作 它运行performSearch函数成功 但是当我尝试通过点击提交按钮运行该函数时 出现错误 无法读取未定义的属性错误 这是我的代码
  • 如何用 Any 类型来包装价值?使用@Parcelize

    我在尝试将值放入 Any 类型时遇到问题 放入包裹中 我正在使用 kotlinx android parcel 中的 Parcelize Lint 警告我并提示要添加的消息 RawValue 但这没有帮助 我有 android os Bad
  • 表单元素的 action 属性可以为空吗?

    从 HTML5 开始 广泛使用和推荐的action 是无效的 HTML 从规格来看 如果指定了 action 和 formaction 内容属性 则必须具有 一个有效 URL 的值 那么正确的方法是什么action属性指向当前页面 我目前正
  • 在R中快速读取多个文件

    我有超过 10000 个 csv 文件 我需要对每个 csv 文件的每一列进行快速傅里叶变换 我可以访问 1000 个核心 最快的方法应该是什么 目前我有一个 for 循环按顺序读取每个文件并使用apply data 2 FFT 功能 我该
  • 如何确保应用程序只有一份副本在运行? [复制]

    这个问题在这里已经有答案了 可能的重复 防止 Linux 上出现多个进程实例 https stackoverflow com questions 2964391 preventing multiple process instances o
  • 如何在 Spring 中检查 Request Scope 的可用性?

    我正在尝试设置一些代码 如果 spring 的请求范围可用 这些代码将以一种方式运行 如果所述范围不可用 则以另一种方式运行 所涉及的应用程序是一个 Web 应用程序 但有一些 JMX 触发器和计划任务 即 Quartz 也会触发调用 E