一、
基本装配(IOC的基本使用)
(1)、setter方式(必须依靠无参构造器)
A、基本类型(8中基本类型+字符串)的装配
B、对象类型的装配
C、集合的装配
A、基本类型的装配
注意: 用setter方式注入的话,必须要用set、get方法
例子:
public
class
HelloBean {
private
String
name
;
private
int
age
;
public
String sayHello(){
return
\"hello \"
+
name
+
\",your age is\"
+
age
;
}
.............
}
配置文件applicationContext.xml
<
bean
id
=
\"helloBean\"
class
=
\"ioc1.HelloBean\"
>
<
property
name
=
\"name\"
>
<
value
>
lishi
</
value
>
</
property
>
<
property
name
=
\"age\"
value
=
\"20\"
>
</
property
>
</
bean
>
<!--id是Bean的唯一标识,要求在整个配置文件中要唯一-->
<!--property 对于所有用setter方式来注入的必须用Property来指定-->
<!--value 是对以基本类型,都用value来注入,可以实现自动的数据类型转换-->
测试类:
public class Test {
public static void main(String[] args) {
ApplicationContext ac =
new ClassPathXmlApplicationContext(\"ioc1\\\\applicationContext.xml\");
//获取容器的一个实例
HelloBean hb = (HelloBean) ac.getBean(\"helloBean\");
System.out.println(hb.sayHello());
}
}
B、对象类型的装配
(1)、<ref local=\" \"/> 用于涉及的对象的id在本配置文件中
(2)、<ref bean=\" \"/> 用于涉及的对象的id不再本配置文件中
(3)、嵌套
public
class
OtherBean {
private
String
str1
;
public
String getStr1() {
return
str1
;
}
public
void
setStr1(String str1) {
this
.
str1
= str1;
}
public
String toString(){
return
\"OtherBean \"
+
str1
;
}
}
public
class
SomeBean {
private
OtherBean
ob
;
public
void
printInfo(){
System.
out
.println(
\"someBean \"
+
ob
);
}
public
OtherBean getOb() {
return
ob
;
}
public
void
setOb(OtherBean ob) {
this
.
ob
= ob;
}
}
配置applicationContext.xml
<
bean
id
=
\"someBean\"
class
=
\"ioc2.SomeBean\"
>
<
property
name
=
\"ob\"
>
<
ref
bean
=
\"otherBean\"
/>
</
property
>
</
bean
>
配置other.xml文件
<
bean
id
=
\"otherBean\"
class
=
\"ioc2.OtherBean\"
>
<
property
name
=
\"str1\"
>
<
value
>
string1
</
value
>
</
property
>
</
bean
>
测试类:
public
static
void
main(String[] args) {
ApplicationContext ac =
new
ClassPathXmlApplicationContext(
new
String[]{
\"ioc2//applicationContext.xml\"
,
\"ioc2//other.xml\"
});
SomeBean sb = (SomeBean) ac.getBean(
\"someBean\"
);
sb.printInfo();
}
本文出自 “新新手” 博客,谢绝转载!