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);
        }

    }
相关推荐
Lear7 小时前
【Spring】事务失效场景详解:原理、问题与解决方案
后端
小马爱打代码7 小时前
Spring AI:文生图:调用通义万相 AI 大模型
java·人工智能·spring
摇滚侠7 小时前
2025最新 SpringCloud 教程,网关功能、创建网关,笔记51、笔记52
java·笔记·spring cloud
又是忙碌的一天7 小时前
Socket学习
java·学习·socket
青白菜7 小时前
将Java程序打包成exe文件
后端
泉城老铁8 小时前
springboot+vue 如何实现海康摄像头喊话功能
前端·vue.js·后端
小码编匠8 小时前
C# 实现网络文件传输:打造稳定可靠的工业级工具
后端·c#·.net
香吧香8 小时前
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
java·spring boot·spring cloud
一 乐8 小时前
美食推荐|基于springboot+vue的美食分享系统设计与实现(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·美食
浓墨染彩霞8 小时前
Java-----多线路
java·经验分享·笔记