2015-05-12 19 views
0

如何在使用注射器@Autowired@Value註釋spring時訂購成員變量字段?代碼質量 - @Autowired成員變量的順序?

你認爲下面的例子是否是最佳實踐?

public class MyExample { 
    private static final Logger logger; 
    private static final int STATIC_VAR = 1; 

    @Autowired 
    private WebService service; 

    @Value("${my.property}") 
    private String property; 

    //to be set by setter or constructor 
    private MailService mail; 
} 
+0

我不考慮註釋,我通過它們的類型封裝了變量。無論如何,這主要是基於意見的。 – Maroun

回答

1

我不確定實例成員的順序真的很重要。也就是說,我喜歡通過構造函數設置它們,以便它們可以是最終的:

public class MyExample { 

    private static final Logger logger; 
    private static final int STATIC_VAR = 1; 

    private final WebService service; 

    private final String property; 

    private final MailService mail; 

    @Autowired 
    public MyExample(WebService service, @Value("${my.property}") String property) { 
    this.service = service; 
    this.property = property; 
    mail = new MailService(); 
    } 

}