"Null-value" hakkında bilmediğim için @nosebrain kredisi veriyorum, ancak özellikle null
bir özellikler dosyasında gösterilmesi zor olduğu için boş değerleri kullanmaktan kaçınmayı tercih ediyorum .
Ama burada null kullanarak bir alternatif var, null-value
bu yüzden ne olursa olsun özellik yer tutucusu ile çalışacak.
public class MyObject {
private String value;
@Value("${stuff.value:@null}")
public void setValue(String value) {
if ("@null".equals(value)) this.value = null;
else this.value = value;
}
}
Şahsen ben kendi yolumu tercih ederim çünkü belki daha sonra stuff.value
Virgülle ayrılmış bir değer olmak istersiniz veya belki de Enum'a geçiş daha kolaydır. Birim testi yapmak da daha kolay :)
DÜZENLEME: numaralandırmaları kullanma konusundaki yorumlarınıza ve boş kullanmama fikrime göre.
@Component
public class MyObject {
@Value("${crap:NOTSET}")
private Crap crap;
public enum Crap {
NOTSET,
BLAH;
}
}
Yukarıdakiler benim için iyi çalışıyor. Boşluktan kaçınırsınız. Mülk dosyalarınız, işlemek istemediklerini açık bir şekilde ayarlamak istiyorsa, o zaman siz yaparsınız ( ancak bunu varsayılan olarak NOTSET olarak belirtmeniz gerekmez ).
crap=NOTSET
null
çok kötü ve farklı NOTSET
. Bu, yay veya birim testinin ayarlanmadığı anlamına gelir, bu yüzden IMHO bir fark vardır. Yine de muhtemelen daha kolay birim testi olarak ayarlayıcı gösterimini (önceki örnek) kullanırdım (özel değişkenlerin bir birim testinde ayarlanması zordur).