You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring @EventListener注解提示不允许在此位置报错如何修复?

问题根源

你出现这两个报错的核心原因是把triggerMail方法和@EventListener注解错误定义在了main方法内部,Java语法不允许在方法内部定义带public修饰符、带类级别注解的成员方法。

报错原因说明

  • 报错The annotation @EventListener is disallowed for this location:@EventListener是Spring框架提供的注解,仅允许标注在类的成员方法上,不能作用于另一个方法内部的局部代码,因此当前位置不允许使用该注解。
  • 报错Illegal modifier for parameter triggerMail; only final is permitted:在方法内部定义的局部结构仅允许使用final修饰符,你给方法内部的triggerMail加了public访问修饰符,违反了Java语法规则。

修复方案

将triggerMail方法从main方法中移出,作为SpringEmailClientApplication类的成员方法即可,修复后代码如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;

@SpringBootApplication
public class SpringEmailClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringEmailClientApplication.class, args);
    }
                    
    //EventListener will be triggered when application is ready
    @EventListener(ApplicationReadyEvent.class)
    public void triggerMail() {
        // 此处编写邮件发送的业务逻辑
    }

}

内容的提问来源于stack exchange,提问作者Hrishikesh Shinde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:15:00