autowiring servletContext vs实现servletContextAware

时间:2015-08-27 18:42:21

标签: spring spring-mvc servlets

我已经看到了两种在服务/控制器中获取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();
  }

}

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

1 个答案:

答案 0 :(得分:-2)

没有人回答,所以我会试一试。

注释版本更简单,但是在未启用自动装配的情况下(或在此功能之前的Spring版本中),只有ServletContextAware版本才有效。

如果您启用了该功能,推荐的方式是前者。