【发布时间】:2015-11-22 07:03:11
【问题描述】:
我已经看到了两种在服务/控制器中获取 servletContext bean 的方法。
1) 简单的方法就是自动装配:
@Autowired
ServletContext servletContext;
2)另一种方式是实现servletContextAware接口:
@RestController("/mycontroller")
public myController implements ServletContextAware {
private ServletContext context;
@Override
public void setServletContext(ServletContext context) {
this.context = context;
}
public String getContextPath(){
return context.getContextPath();
}
}
这两者的优缺点是什么?推荐的方式是什么?
【问题讨论】:
-
这样的问题主要攻击自以为是的答案。
-
只要有建设性,就很好。这就是为什么 SO 而不是一些随机论坛?
-
我发现在从 XML 配置迁移到 Java 配置时,具有
@AutowiredServletContext 的类在启动时可能会失败。对此的一种补救措施是在这些情况下实施ServletContextAware。
标签: spring spring-mvc servlets