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

    }
相关推荐
步行cgn5 分钟前
MyBatis 一对多关联映射详解
java·后端
阿弱8 分钟前
pi 扩展机制:加载、执行与能力
后端·llm·agent
用户31268748772010 分钟前
线程池到底怎么调?从源码看懂 ThreadPoolExecutor 的 7 个参数
java
SQL-First布道者33 分钟前
持久层框架的评价标准:只有一个
java·spring boot·spring·tomcat·mybatis·spring jdbc
孔明click3337 分钟前
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
java·sa-token·开源·springboot·权限认证
m0_587383001 小时前
智慧场馆解决方案实战指南:从系统架构到落地部署全解析
java·spring boot·架构·系统架构
ZC跨境爬虫1 小时前
LeetCode 13. 罗马数字转整数(多解法详解 + Java Python 实现)
java·python·leetcode
省长1 小时前
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
java·后端·开源
tech_zjf1 小时前
当 AI 把 Next.js Route 越写越快:我为什么做了 next-route-kit
前端·后端
LayZhangStrive2 小时前
融360 一面
java·面试·后端开发