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

nov*_*ice 2 java spring

哪个选项更好?

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

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

public class PermissionInterceptor extends HandlerInterceptorAdapter {
   private MessageSource messageSource;

   @Autowired
   public void setMessageSource(MessageSource messageSource) {
     this.messageSource = messageSource;
   }
}
Run Code Online (Sandbox Code Playgroud)

要么

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

   public void setMessageSource(MessageSource messageSource) {
     this.messageSource = messageSource;
   }
}
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*e Q 5

没有真正的大利弊.通常,这只是编码员的偏好问题.我会说,如果你要使用@Autowired然后把字段的注释放下并删除方法.这使它更简洁,对我来说这是注释的好处.

public class PermissionInterceptor extends HandlerInterceptorAdapter {

   @Autowired
   private MessageSource messageSource;

   ...
}
Run Code Online (Sandbox Code Playgroud)

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