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

    }
相关推荐
wuqingshun3141591 分钟前
SpringBoot是如何实现自动配置的
java·spring boot·后端
zhouhui0016 分钟前
AI帮我写了个Spring Boot校验,线上漏掉了这组边界条件
java·spring boot·redis·ai编程
JRedisX13 分钟前
Java从零手写企业级内存数据库
java
萧瑟余晖15 分钟前
JDK 20 新特性详解
java·开发语言
hdsoft_huge17 分钟前
SpringBoot系列17:日志体系Logback配置,日志分割、脱敏、异常堆栈收集规范(生产级落地)
java·spring boot·logback
ymluo19 分钟前
WebRTC M80:VP9 多层(SVC:联播)崩溃问题定位与修复建议
后端
吃饱了得干活19 分钟前
扫码登录如何实现?从原理到实战
java·spring boot·redis
JRedisX23 分钟前
JRedisX 项目骨架搭建指南 从零开始 — 手把手教你搭
java
juzi05027 分钟前
常见场景下的幂等性及解决方案
后端
小陈工28 分钟前
第7篇:Django框架核心原理与实战深度解析(下)
后端·python·面试