Mùa xuân - Bộ sưu tập Tiêm
Bạn đã thấy cách định cấu hình kiểu dữ liệu nguyên thủy bằng cách sử dụng value tham chiếu thuộc tính và đối tượng bằng cách sử dụng refthuộc tính của thẻ <property> trong tệp cấu hình Bean của bạn. Cả hai trường hợp đều xử lý việc truyền giá trị số ít cho bean.
Bây giờ điều gì sẽ xảy ra nếu bạn muốn truyền các giá trị số nhiều như kiểu Bộ sưu tập Java như Danh sách, Tập hợp, Bản đồ và Thuộc tính. Để xử lý tình huống này, Spring cung cấp bốn loại phần tử cấu hình bộ sưu tập như sau:
Sr.No | Yếu tố & Mô tả |
---|---|
1 | <list> Điều này giúp ích trong việc nối dây tức là đưa vào danh sách các giá trị, cho phép các bản sao. |
2 | <set> Điều này giúp nối dây một bộ giá trị nhưng không có bất kỳ bản sao nào. |
3 | <map> Điều này có thể được sử dụng để đưa vào một tập hợp các cặp tên-giá trị trong đó tên và giá trị có thể thuộc bất kỳ loại nào. |
4 | <props> Điều này có thể được sử dụng để đưa vào một tập hợp các cặp tên-giá trị trong đó tên và giá trị đều là Chuỗi. |
Bạn có thể sử dụng <list> hoặc <set> để bắt đầu bất kỳ triển khai nào của java.util.Collection hoặc array.
Bạn sẽ gặp hai tình huống (a) Truyền các giá trị trực tiếp của tập hợp và (b) Truyền một tham chiếu của bean làm một trong các phần tử của tập hợp.
Thí dụ
Hãy để chúng tôi có một IDE Eclipse đang hoạt động và thực hiện các bước sau để tạo một ứng dụng Spring -
Các bước | Sự miêu tả |
---|---|
1 | Tạo một dự án với tên SpringExample và tạo một gói com.tutorialspoint trongsrc thư mục trong dự án đã tạo. |
2 | Thêm các thư viện Spring bắt buộc bằng cách sử dụng tùy chọn Thêm JAR bên ngoài như được giải thích trong chương Ví dụ về Spring Hello World . |
3 | Tạo các lớp Java JavaCollection và MainApp trong gói com.tutorialspoint . |
4 | Tạo tệp cấu hình Đậu Beans.xml trongsrc thư mục. |
5 | Bước cuối cùng là tạo nội dung của tất cả các tệp Java và tệp Cấu hình Bean và chạy ứng dụng như được giải thích bên dưới. |
Đây là nội dung của JavaCollection.java tập tin -
package com.tutorialspoint;
import java.util.*;
public class JavaCollection {
List addressList;
Set addressSet;
Map addressMap;
Properties addressProp;
// a setter method to set List
public void setAddressList(List addressList) {
this.addressList = addressList;
}
// prints and returns all the elements of the list.
public List getAddressList() {
System.out.println("List Elements :" + addressList);
return addressList;
}
// a setter method to set Set
public void setAddressSet(Set addressSet) {
this.addressSet = addressSet;
}
// prints and returns all the elements of the Set.
public Set getAddressSet() {
System.out.println("Set Elements :" + addressSet);
return addressSet;
}
// a setter method to set Map
public void setAddressMap(Map addressMap) {
this.addressMap = addressMap;
}
// prints and returns all the elements of the Map.
public Map getAddressMap() {
System.out.println("Map Elements :" + addressMap);
return addressMap;
}
// a setter method to set Property
public void setAddressProp(Properties addressProp) {
this.addressProp = addressProp;
}
// prints and returns all the elements of the Property.
public Properties getAddressProp() {
System.out.println("Property Elements :" + addressProp);
return addressProp;
}
}
Sau đây là nội dung của MainApp.java tập tin -
package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
JavaCollection jc=(JavaCollection)context.getBean("javaCollection");
jc.getAddressList();
jc.getAddressSet();
jc.getAddressMap();
jc.getAddressProp();
}
}
Sau đây là tệp cấu hình Beans.xml có cấu hình cho tất cả các loại bộ sưu tập -
<?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-3.0.xsd">
<!-- Definition for javaCollection -->
<bean id = "javaCollection" class = "com.tutorialspoint.JavaCollection">
<!-- results in a setAddressList(java.util.List) call -->
<property name = "addressList">
<list>
<value>INDIA</value>
<value>Pakistan</value>
<value>USA</value>
<value>USA</value>
</list>
</property>
<!-- results in a setAddressSet(java.util.Set) call -->
<property name = "addressSet">
<set>
<value>INDIA</value>
<value>Pakistan</value>
<value>USA</value>
<value>USA</value>
</set>
</property>
<!-- results in a setAddressMap(java.util.Map) call -->
<property name = "addressMap">
<map>
<entry key = "1" value = "INDIA"/>
<entry key = "2" value = "Pakistan"/>
<entry key = "3" value = "USA"/>
<entry key = "4" value = "USA"/>
</map>
</property>
<!-- results in a setAddressProp(java.util.Properties) call -->
<property name = "addressProp">
<props>
<prop key = "one">INDIA</prop>
<prop key = "one">INDIA</prop>
<prop key = "two">Pakistan</prop>
<prop key = "three">USA</prop>
<prop key = "four">USA</prop>
</props>
</property>
</bean>
</beans>
Khi bạn đã hoàn tất việc tạo các tệp cấu hình nguồn và bean, hãy để chúng tôi chạy ứng dụng. Nếu mọi thứ đều ổn với ứng dụng của bạn, nó sẽ in ra thông báo sau:
List Elements :[INDIA, Pakistan, USA, USA]
Set Elements :[INDIA, Pakistan, USA]
ap Elements :{1 = INDIA, 2 = Pakistan, 3 = USA, 4 = USA}
Property Elements :{two = Pakistan, one = INDIA, three = USA, four = USA}
Tham khảo về việc tiêm đậu
Định nghĩa Bean sau đây sẽ giúp bạn hiểu cách đưa các tham chiếu bean làm một trong những phần tử của bộ sưu tập. Thậm chí, bạn có thể kết hợp tất cả các tham chiếu và giá trị với nhau như được hiển thị trong đoạn mã sau -
<?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-3.0.xsd">
<!-- Bean Definition to handle references and values -->
<bean id = "..." class = "...">
<!-- Passing bean reference for java.util.List -->
<property name = "addressList">
<list>
<ref bean = "address1"/>
<ref bean = "address2"/>
<value>Pakistan</value>
</list>
</property>
<!-- Passing bean reference for java.util.Set -->
<property name = "addressSet">
<set>
<ref bean = "address1"/>
<ref bean = "address2"/>
<value>Pakistan</value>
</set>
</property>
<!-- Passing bean reference for java.util.Map -->
<property name = "addressMap">
<map>
<entry key = "one" value = "INDIA"/>
<entry key = "two" value-ref = "address1"/>
<entry key = "three" value-ref = "address2"/>
</map>
</property>
</bean>
</beans>
Để sử dụng định nghĩa bean ở trên, bạn cần xác định các phương thức setter của mình theo cách mà chúng cũng có thể xử lý các tham chiếu.
Tiêm giá trị chuỗi rỗng và rỗng
Nếu bạn cần chuyển một chuỗi trống làm giá trị, thì bạn có thể chuyển nó như sau:
<bean id = "..." class = "exampleBean">
<property name = "email" value = ""/>
</bean>
Ví dụ trước tương đương với mã Java: exampleBean.setEmail ("")
Nếu bạn cần chuyển một giá trị NULL, thì bạn có thể chuyển nó như sau:
<bean id = "..." class = "exampleBean">
<property name = "email"><null/></property>
</bean>
Ví dụ trước tương đương với mã Java: exampleBean.setEmail (null)