今天核心知识点在:为了消除xml文件引用歧义
抽象总结:知识点 构造方法value赋值 多个与单个
若是单个,基本类型或者string类型直接使用value属性
类 类型 这种类型(如date)直接使用ref标签属性
在xml文件配置中:
list集合用list
数组集合用arraymap集合用map:key是基本类型和string,类类型用ref
properties用props标签
首先,在test中:
public class test {
public static void main(String[] args) {
new ClassPathXmlApplicationContext("application.xml");
}
}
XML\USERINFO\
总结一:String类型、基本数据类型或其包装类都可以使用value标签属性赋值
XML中:直接使用value标签属性
<constructor-arg index="1" value="Tom"></construtor-arg>
<constructor-arg index="0" value="12"></construtor-arg>
USERINFO:
public userinfo(int age){
System.out.println("int"+age)
总结二:类类型(自定义类型) ref
XML中:
先引用:<bean id="bi" class="java.util.Date"></bean>
<constructor-arg ref="bi"></constructor-arg>
USERINFO:
public Userinfo(Date birth) {
System.out.println("一个参数"+birth);
}
总结三:数组 constructor-arg ——>array——>value(String类型、基本数据类型或其包装类),ref>bean类类型(自定义类型)
XML:
<constructor-arg>
<array>
<value>12</value>
<value>tonny</value>
<ref bean="bi"/>
</array>
</constructor-arg>
USERINFO:
public Userinfo(Object [] array){
System.out.println("数组");
for(Object object:array) {
System.out.println(object);
}
总结四:
集合:
List:constructor-arg ——>list——>value(String类型、基本数据类型或其包装类),ref>bean类类型(自定义类型)
Set:constructor-arg ——>set——>value(String类型、基本数据类型或其包装类),ref>bean类类型(自定义类型)
Map:constructor-arg ——>map——>
entry:key或value是String类型、基本数据类型或其包装类,则分别使用entry标签中key和value标签属性
entry:key或value是类类型(自定义类型),应该使用对相应的key-ref或value-ref
list
在XML中:
<constructor-arg>
<list>
<value>12</value>
<value>tonny</value>
<ref bean="bi"/>
</list>
</constructor-arg>
在Userinfo中:
public Userinfo(List<Object> list) {
System.out.println("list集合");
for(Object object:list) {
System.out.println(object);
}
}
set
xml:
<constructor-arg>
<set>
<value>12</value>
<value>tonny</value>
<ref bean="bi"/>
</set>
</constructor-arg>
在Userinfo中:
public Userinfo(Set<Object>set) {
System.out.println("list集合");
for(Object object:list) {
System.out.println(object);
}
}
map
在XML中:
<map>
<entry key="name" value="Tom"></entry>
<entry key="name" value="12"></entry>
<entry key="name" value-ref="bi"></entry>
</map>
在Userinfo中:
public Userinfo(Map<Object> map) {
System.out.println("map集合");
Set<String>keys=map.keySet();
for(String key:keys) {
System.out.println(key+":"map.get(key));
}
}
总结五:Properties:constructor-arg ——>props——>prop 只能配置String类型
在XML中:
<props>
<prop key="driver"><com.mysql.jdbc.Driver</prop>
<prop key="name">root</prop>
<prop key="password">root</prop>
</props>
在Userinfo中:
public Userinfo(Properties properties){
System.out.println(peoperties.get("driver"));
System.out.println(peoperties.get("username"));
System.out.println(peoperties.get("password"));
System.out.println(peoperties.get("url"));
}
ref标签:对应ref属性,该标签name属性的属性值为另一个bean标签id或name属性的属性值;
value子标签:对应value属性,用于设置基本数据类型或String类型的参数值;