Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Rujukan : http://www.springbyexample.org/examples/intro-to-ioc.html
Kontainer IoC Spring juga mendukung injeksi setter, yang merupakan metode dependency injection yang lebih disukai di Spring. Injeksi setter menggunakan metode set* dalam suatu file class untuk mengumpulkan nama-nama properti yang dapat dikonfigurasi di dalam konfig XML Spring.
Dari pandangan konfigurasi, injeksi setter lebih mudah untuk dibaca dikarenakan nama properti yang diset diberikan sebagai suatu atribut ke bean, bersamaan dengan nilai yang diinjeksikan.
Untuk menentukan nama properti, Spring mengikuti Spesifikasi JavaBeans (http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html).
Dalam banyak kasus, Spring akan menjadikan lowercase huruf pertama setelah “set” di nama metode dan menggunakan bagian selanjutnya di nama metode sebagai simpulan nama properti. Jadi untuk contoh jika ada suatu metode setMessage() di class kita, nama properti yang akan kita gunakan saat mensetting properti pada bean di konfig XML adalah “message”/ Jika ada metode setFirstName() di class ini, maka nama properti yang akan kita gunakan saat menseting nilai adalah “firstName”.
Dalam kasus dimana huruf setelah “set” semuanya adalah uppercase, Spring akan membiarkan nama properti sebagai uppercase. Jadi jika kita memiliki setXML() di class, nama propertinya adalah XML.
Dikarenakan Spring menggunakan set nama metode untuk menyimpulkan nama properti, penamaan set metode kita sebaiknya mengikuti spek JavaBean, atau setidaknya konsisten dalam batas-batas aplikasi kita. Perhatikan conto berikut untuk memahami dasar injeksi Stter pada class Message kita.
Example 3. SetterMessage
public class SetterMessage { private String message = null; /** * Gets message. */ public String getMessage() { return message; } /** * Sets message. */ public void setMessage(String message) { this.message = message; } }
Element properti digunakan untuk mendefinisikan injeksi setter :
SetterMessageTest-context.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="message" class="org.springbyexample.di.xml.SetterMessage"> <property name="message" value="Spring is fun." /> </bean> </beans>
Leave a Reply