Ek açıklamalar kendi kullanımlarına sahiptir, ancak XML yapılandırmasını ortadan kaldıracak tek sihirli değnek değildirler. İkisini karıştırmanızı tavsiye ederim!
Örneğin, Spring kullanıyorsanız, uygulamanızın bağımlılık ekleme kısmı için XML kullanmak tamamen sezgiseldir. Bu, kodun bağımlılıklarını onu kullanacak olan koddan uzaklaştırır, bunun aksine, kodda bağımlılıklara ihtiyaç duyan bir tür ek açıklama kullanmak, kodu bu otomatik yapılandırmadan haberdar eder.
Bununla birlikte, işlem yönetimi için XML kullanmak yerine, bir yöntemi bir ek açıklama ile işlemsel olarak işaretlemek mükemmel bir anlam ifade eder, çünkü bu bir programcının muhtemelen bilmek isteyeceği bilgilerdir. Ancak bir arabirimin SubtypeX yerine SubtypeY olarak enjekte edileceği, sınıfa dahil edilmemelidir, çünkü şimdi SubtypeX'i enjekte etmek istiyorsanız, kodunuzu değiştirmeniz gerekir, oysa daha önce bir arabirim sözleşmeniz vardı. XML ile, XML eşlemelerini değiştirmeniz yeterlidir ve bunu yapmak oldukça hızlı ve zahmetsizdir.
JPA ek açıklamalarını kullanmadım, bu yüzden ne kadar iyi olduklarını bilmiyorum, ancak fasulye eşlemelerini XML'de veritabanına bırakmanın da iyi olduğunu, çünkü nesnenin bilginin nereden geldiğini umursamaması gerektiğini savunabilirim. , sadece bilgisiyle ne yapabileceğini önemsemeli. Ama eğer JPA'yı seviyorsanız (bununla ilgili herhangi bir tecrübem yok), elbette, onun için gidin.
Genel olarak: Bir açıklama işlevsellik sağlıyorsa ve kendi başına bir yorum işlevi görüyorsa ve kodu, bu açıklama olmadan normal şekilde çalışması için belirli bir işlemle ilişkilendirmiyorsa, ek açıklamalara gidin. Örneğin, işlemsel olarak işaretlenmiş bir işlem yöntemi, işletim mantığını ortadan kaldırmaz ve aynı zamanda iyi bir kod düzeyinde yorum olarak hizmet eder. Aksi takdirde, bu bilgi muhtemelen en iyi XML olarak ifade edilir, çünkü sonunda kodun çalışma şeklini etkileyecek olsa da, kodun ana işlevini değiştirmez ve dolayısıyla kaynak dosyalara ait değildir.
@Component
ve@Autowired
bu yanlış bir ikilik. JavaConfig ve groovy config dahil, konfigürasyonunuzu oluşturmanın başka yolları da vardır .