我已经看到了两种在服务/ 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
版本可以工作。
如果启用了该功能,建议的方法是前者。