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

    }
相关推荐
紫穹3 分钟前
010.ConversationChain 一键记忆链:字幕版实现与暴躁助手实战
后端·ai编程
非凡ghost13 分钟前
Flameshot(开源免费的截图工具) 中文绿色版
前端·javascript·后端
Apifox21 分钟前
Apifox 10 月更新|支持实时预览在线文档个性化配置的效果、性能优化、测试能力升级
前端·后端·测试
初级程序员Kyle23 分钟前
开始改变第四天 Java并发(2)
java·后端
Ray6623 分钟前
client
后端
苏三的开发日记27 分钟前
RocketMQ面试题
后端
SimonKing32 分钟前
【开发者必备】Spring Boot 2.7.x:WebMvcConfigurer配置手册来了(六)!
java·后端·程序员
xiaoye201834 分钟前
mybatis-plus 浅析
后端
qincloudshaw36 分钟前
java中实现对象深克隆的四种方式
后端
caimo1 小时前
Java无法访问网址出现Timeout但是浏览器和Postman可以
java·开发语言·postman