مشخصات مقاله
-
519
-
0.0
-
2108
-
0
-
0
آموزش Constructor Injection-Java Spring
تزریق سازنده (CI) constructor Injection
مثال تزریق وابستگی توسط سازنده
وابستگی را می توان توسط سازنده تزریق کرد. از زیر عنصر
مثالی ساده از تزریق مقادیر اولیه و مبتنی بر رشته را با هم بررسی می کنیم. سه فایل در اینجا ایجاد شده است که در ادامه به توضیح هر یک می پردازیم. کارمند یک کلاس ساده شامل دو فیلد شناسه(id) و نام است. علاوه بر آن، این کلاس شامل چهار سازنده و یک متد نیز است. اطلاعات مورد نیاز از طریق این فایل در اختیار bean قرار می گیرد. عنصر constructor-arg سازنده را فراخوانی می کند. در این حالت یک سازنده با پارامتری از نوع int فراخوانی می شود. خصیصه ارزش مربوط به عنصر constructor-arg ، ارزش تعیین شده را تخصیص می دهد. خصیصه نوع، مشخص کننده این است که سازنده با پارامتر نوع int فراخوانی شود. این کلاس bean را از فایل applicationContext.xml می گیرد و متد show را فراخوانی می کند. اگر خصیصه نوع در عنصر constructor-arg مشخص نشود، به صورت پیش فرض سازنده از نوع رشته فراخوانی می شود. اگر عنصر bean مطابق کد بالا تغییر کند، سازنده با پارامتر از نوع رشته فراخوانی می شود و خروجی 0 10 خواهد بود. همچنین می توان رشته مورد نظر را به صورت زیر پاس داد: خروجی : 0 Sonoo همچنین می توان مقادیر int و رشته را به صورت زیر پاس داد: خروجی : 10 Sonoo
تزریق مقادیر اولیه و مبتنی بر رشته
فایل Employee.java :
package com.javatpoint;
public class Employee {
private int id;
private String name;
public Employee() {System.out.println("def cons");}
public Employee(int id) {this.id = id;}
public Employee(String name) { this.name = name;}
public Employee(int id, String name) {
this.id = id;
this.name = name;
}
void show(){
System.out.println(id+" "+name);
}
}
فایل applicationContext.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"
• xmlns:p="http://www.springframework.org/schema/p"
• xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
< bean id="e" class="com.javatpoint.Employee">
< constructor-arg value="10" type="int">< /constructor-arg>
< /bean>
< /beans>
فایل Test.java :
package com.javatpoint;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.*;
public class Test {
public static void main(String[] args) {
Resource r=new ClassPathResource("applicationContext.xml");
BeanFactory factory=new XmlBeanFactory(r);
Employee s=(Employee)factory.getBean("e");
s.show();
}
}
تزریق مقادیر مبتنی بر رشته
....
< bean id="e" class="com.javatpoint.Employee">
< constructor-arg value="10">< /constructor-arg>
< /bean>
....
....
< bean id="e" class="com.javatpoint.Employee">
< constructor-arg value="Sonoo">< /constructor-arg>
< /bean>
....
....
< bean id="e" class="com.javatpoint.Employee">
< constructor-arg value="10" type="int">< /constructor-arg>
< constructor-arg value="Sonoo">< /constructor-arg>
< /bean>
....