【问题标题】:Inject Bean in Custom tag Java - @Configurable在自定义标签 Java 中注入 Bean - @Configurable
【发布时间】:2025-12-25 18:15:11
【问题描述】:

我无法将服务注入到我创建的自定义标签中:

@Configurable
public MyTag extends BodyTagSupport{

 @Autowired
 private MyService service;

 @Override
 public int doStartTag(){
 ......
  service.callServiceMethod(); // service is null
 ....
 }
 .......
}

有没有办法在自定义标签中使用 @Configurable 注入 bean?我不想使用以下方法注入 bean:

 ServletContext sc = ((PageContext) getJspContext()).getServletContext();
 ApplicationContext context = 
   WebApplicationContextUtils.getWebApplicationContext(sc);

【问题讨论】:

    标签: java spring dependency-injection taglib


    【解决方案1】:

    @Configurable 需要启用使用 AspectJ 的编译时间或加载时间编织。它不适用于普通的 Spring AOP,请确认您的项目使用了 AspectJ。

    【讨论】:

    • 不,很遗憾,它没有。但是,如果项目使用 AspectJ。我使用的方法行得通吗?还是我还缺少什么?另外,这里有什么注释可以用于 Spring 驱动的 bean 注入吗?
    • 是的,如果您为项目启用了 AspectJ,它将起作用。在 Aspectj 之外,此链接中推荐的唯一方法是:*.com/q/3445908/204788