Spring自动连接消息源与实现MessageSourceAware接口?

时间:2010-09-05 12:52:23

标签: java spring

哪个选项更好?

我有一个拦截器PermissionInterceptor需要访问消息源。

据我所知,可以通过自动装配消息源或实现MessageSourceAware接口来完成,如下所示。

public class PermissionInterceptor extends HandlerInterceptorAdapter {
   private MessageSource messageSource;

   @Autowired
   public void setMessageSource(MessageSource messageSource) {
     this.messageSource = messageSource;
   }
}

public class PermissionInterceptor extends HandlerInterceptorAdapter implements MessageSourceAware {
   private MessageSource messageSource;

   public void setMessageSource(MessageSource messageSource) {
     this.messageSource = messageSource;
   }
}

哪个选项更好?有什么优点和缺点?

1 个答案:

答案 0 :(得分:5)

没有真正的大利弊。通常,这只是编码员的偏好问题。我想说如果你打算使用@Autowired,那么就把字段的注释放到方法中。这使它更简洁,对我来说这是注释的好处。

public class PermissionInterceptor extends HandlerInterceptorAdapter {

   @Autowired
   private MessageSource messageSource;

   ...
}

它还可能取决于您是否在应用程序配置的其余部分中使用注释而不是XML绑定。如果你不在其他地方使用注释,那么为了保持一致,我可能会避免在这种情况下这样做。