spring 向构造器传值:
package com.test.spring.bean;
public class TestConstructor {
String a;
String b;
String c;
String d;
public TestConstructor() {
// TODO Auto-generated constructor stub
}
public TestConstructor(String a,String b,String c,String d) {
// TODO Auto-generated constructor stub
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
public String getD() {
return d;
}
public void setD(String d) {
this.d = d;
}
@Override
public String toString() {
return a+"-"+b+"-"+c+"-"+d;
}
}
<!-- 通过 构造器传递参数 -->
<bean name="testConstructor" class="com.test.spring.bean.TestConstructor">
<constructor-arg name="a" value="A" />
<constructor-arg name="b" value="B" />
<constructor-arg name="c" value="C" />
<constructor-arg name="d" value="D" />
</bean>
<!-- 使用指数的形式传递 -->
<bean name="testConstructor1" class="com.test.spring.bean.TestConstructor">
<constructor-arg index="0" value="A" />
<constructor-arg index="1" value="B" />
<constructor-arg index="2" value="C" />
<constructor-arg index="3" value="D" />
</bean>
TestConstructor bean = context.getBean("testConstructor",TestConstructor.class);
System.out.println(bean.toString());
TestConstructor bean1 = context.getBean("testConstructor1",TestConstructor.class);
System.out.println(bean1.toString());
运行结果:
A-B-C-D
A-B-C-D
使用 Setter 方式注入:
<!-- 使用指数的形式传递 -->
<bean name="testConstructor1" class="com.test.spring.bean.TestConstructor">
<constructor-arg index="0" value="A" />
<constructor-arg index="1" value="B" />
<constructor-arg index="2" value="C" />
<constructor-arg index="3" value="D" />
</bean>
<bean name="testObjectConstructor" class="com.test.spring.bean.TestObjectConstructor">
<constructor-arg index="0" ref="testConstructor1" />
<constructor-arg index="1" value="2017年4月22日17:31:06" />
</bean>
package com.test.spring.bean;
public class TestObjectConstructor {
String year;
TestConstructor tc;
public TestObjectConstructor(TestConstructor tc,String year) {
// TODO Auto-generated constructor stub
this.year = year;
this.tc = tc;
System.out.println(year+"--->>>"+tc.getA());
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "--->year:"+year+"--->"+tc.getB();
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public TestConstructor getTc() {
return tc;
}
public void setTc(TestConstructor tc) {
this.tc = tc;
}
}
TestConstructor bean = context.getBean("testConstructor",TestConstructor.class);
System.out.println(bean.toString());
TestConstructor bean1 = context.getBean("testConstructor1",TestConstructor.class);
System.out.println(bean1.toString());
TestObjectConstructor bean2 = context.getBean("testObjectConstructor",TestObjectConstructor.class);
System.out.println(bean2.toString());
运行结果:
2017年4月22日17:31:06--->>>A
A-B-C-D
A-B-C-D
--->year:2017年4月22日17:31:06--->B
spring 的一个 bean 可以作为参数传递给另外一个 bean 使用