springboot+javafx使用aop切面导致的fx:id不能被注入问题

记录一个我遇到得问题

问题描述

我本来使用AOP切面来进行全局异常管理,但是使用AOP之后fxml中通过fx:id绑定得参数无法被注入

java 复制代码
@Slf4j
@Component
@Aspect
public class GlobalExceptionAspect {

    @AfterThrowing(pointcut = "execution(* com.shkj.videoclassification..*(..))", throwing = "ex")
    public void handleServiceException(Exception ex) {
        // 处理异常逻辑
//        System.err.println("Caught an exception in service layer: " + ex.getMessage());
//        ex.printStackTrace();
        log.error(ex.getMessage());
        AlertUtils.showAlert("系统错误",ex.getMessage());

    }
}

解决办法

不使用全局异常处理集合,使用try catch捕获异常进行处理

java 复制代码
@Component
@Slf4j
public class  GlobalExceptionHandler  {

    public static void handleException(Exception ex) {
        // 使用 Platform.runLater 确保在 JavaFX 线程中安全地显示弹窗
        Platform.runLater(() -> {
            log.error(ex.getMessage());
            AlertUtils.showAlert("系统错误", ex.getMessage());
        });

    }
}

手动触发异常

java 复制代码
   @FXML
    public void initialize() {
        try {
            System.out.println("初始化");
            System.out.println(labelMsg);
            throw new CheckedException("初始化失败");
        } catch (Exception e) {
            GlobalExceptionHandler.handleException(e);
        }

    }
相关推荐
码事漫谈4 分钟前
Deepseek涨价了,前后对比,竟然差这么多
后端
imaol127 分钟前
链表 -- 环链表
java·前端·链表
imaol11 小时前
链表 -- 双向链表
java·前端·链表
东风破_1 小时前
大前端手里的 Next.js:从 #root 到 SEO,一份 HTML 的两种命运
前端·后端
IT_陈寒1 小时前
Vue的v-for不听话?我被这个Key的坑整懵了
前端·人工智能·后端
2601_963869951 小时前
【计算机毕业设计】基于Java的相框定制系统的设计与实现
java·开发语言·课程设计
众人皆醒我独醉2 小时前
训练加速实战:Flash Attention、Gradient Checkpointing 与数据流水线
后端·面试·gpu
阿黎梨梨2 小时前
Next.js 全栈开发:从 SPA 的痛点到 SSR 的破局之道
前端·后端
名字还没想好☜2 小时前
Go 的 unsafe.Pointer 实战:零拷贝 []byte↔string 转换与三条铁律
开发语言·后端·golang·go·unsafe
老孙讲技术2 小时前
周末档期厨房爆单,带宽账单也爆了——不是直播难,是主码流 + always 计划在烧钱
后端·物联网