Spring – Ders 16 Injecting with JavaBased Configuration
Merhaba Arkadaslar,
Bu Spring dersine kadar butun bean tanimlamalarini hep XML dosyamizda gerceklestirmistik. Fakat Spring bize bir guzellik daha yapiyor ve @Configuration ve @Bean notasyonlari ile Java-Based injection yapmamiza olanak sagliyor.
Daha onceki derslerde <context:component-scan> etiket yapisi ile Spring’in beanleri nasil otomatik olarak aradigini ve bagladigini incelemistik. Java-Based Configuration yapisinda @Configuration notasyonunu kullanan siniflar otomatik olarak yuklenecektir. @Configuration notasyonu ilgili sinifin bir ya da daha fazla Spring Bean deklarasyonu icerdigini ifade etmektedir. @Configuration notasyonu XML yapisindaki <beans> etiketine denk gelmektedir.
Bir diger notasyonumuz olan @Bean notasyonu da XML yapisinda kullandigimiz <bean> etiketine denk gelmektedir.
HelloJavaBasedConfiguration.java
package erguder.levent._16.javabased.configuration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class HelloJavaBasedConfiguration { @Bean public HelloJavaBean helloJavaBean() { return new HelloJavaBean(); } }
Bu yapi onceki derslerde kullandigimiz XML yapisindaki su yapiya karsilik gelmektedir ;
<beans> <bean id="helloJavaBean" class="erguder.levent._16.javabased.configuration.HelloJavaBean" /> </beans>
HelloJavaBean.java
package erguder.levent._16.javabased.configuration; public class HelloJavaBean { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public void writeMessage() { System.out.println(message); } }
TestJavaBasedInjection.java
package erguder.levent._16.javabased.configuration; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestJavaBasedInjection { public static void main(String[] args) { ApplicationContext ctx = new AnnotationConfigApplicationContext(HelloJavaBasedConfiguration.class); HelloJavaBean helloJavaBean = ctx.getBean(HelloJavaBean.class); helloJavaBean.setMessage("Yaşam kaybetmeyi öğrenme sanatıdır.Ahmet Ümit"); helloJavaBean.writeMessage(); } }
Daha onceki derslerde konfigurasyon icin XML dosyasi kullanmistik ve bunun icin ApplicationContext icin su yapiyi kullanmistik,
ApplicationContext context = new ClassPathXmlApplicationContext("tutorial_XX.xml");
Burada konfigurasyonumuzu XML dosyamiz uzerinden degil Java-Based yaptigimiz icin , konfigurasyonu gerceklestirdigimiz sinifin class literalini arguman olarak veriyoruz.
Benzer sekilde getBean metodumuza HelloJavaBean sinifimizin class literalini arguman olarak veriyoruz.
Test sinifimizi calistiralim ve sonucu gorelim ;
Yaşam kaybetmeyi öğrenme sanatıdır.Ahmet Ümit
Kaynak kodlar: SpringProject_v16
Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust
Leave a Reply