我已经看到了两种在服务/ Controller 中获取servletContext bean的方法。

1)简单的方法就是 Autowiring :

@Autowired
ServletContext servletContext;

2)另一种方法是实现servletContextAware接口(interface):
@RestController("/mycontroller")
public myController implements ServletContextAware {

    private ServletContext context;

    @Override
    public void setServletContext(ServletContext context) {
        this.context = context;
    }

   public String getContextPath(){
   return context.getContextPath();
  }

}

这两者的优缺点是什么?推荐哪种方法?

最佳答案

没有人回答,所以我给它一个机会。

注释版本更简单,但是在未启用 Autowiring 的情况下(或在此功能之前的Spring版本中),只有ServletContextAware版本可以工作。

如果启用了该功能,建议的方法是前者。

10-08 13:55