2010-09-05 69 views
1

哪个选项更好?Spring自动装配消息源vs实现MessageSourceAware接口?

我有一个需要访问消息源的拦截器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; 
    } 
} 

哪种选择更好?任何优点和缺点?

回答

5

没有真正的大利弊。一般来说,这只是编码人员偏好的问题。我会说,如果你打算使用@Autowired然后把该字段的注释并放弃方法。这使得它更简洁一点,这对我来说是注释的好处。

public class PermissionInterceptor extends HandlerInterceptorAdapter { 

    @Autowired 
    private MessageSource messageSource; 

    ... 
} 

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

+1

+1'MessageSourceAware'是Spring 2.5之前的唯一选项,但是'@ Autowired'使它更好一些。 – skaffman 2010-09-05 21:13:14