0

我有一个关于 Spring 的问题,如果我的问题是一个愚蠢的问题,请原谅。请看这段代码

public class HomePageController extends AbstractController {

        private GeekNewsService service;

      protected ModelAndView handleRequestInternal(HttpServletRequest req, HttpServletResponse res) throws Exception {
      List<NewsArticle> articles = service.getArticleOverviews();
      return new ModelAndView( "home", "articles", articles );
     }

    public void setGeekNewsService( GeekNewsService service ) {
      this.service = service;
   }

}

我的问题是,在 handleRequestInternal Method 内部,为什么在 service.getArticleOverviews() 这一行没有任何 NullPointerException ?(因为实际的对象创建将在 setMethod 的 SetterInjection 的帮助下发生)??

Spring 中是否有任何规则,当一个类被调用时,必须首先调用 setXXX 方法?

4

1 回答 1

0

是的,这是 Spring 给你的基本合同:在它返回任何 bean 之前,你保证这个 bean 是根据你的配置初始化的。换句话说,在完全初始化 bean(setter 注入、字段注入、构造后回调)之前,您将永远无法调用任何 bean 的任何业务方法。

于 2012-06-12T15:48:11.030 回答