1、BeanFactory bf = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
这里先执行XmlBeanFactory的构造函数,还是ClassPathResource的构造函数??
实验:
A.java
public class A {
private String aString;
public A() {
System.out.println("A()");
}
public A(B b) {
System.out.println("A()");
System.out.println(b.toString());
}
public String getaString() {
return aString;
}
public void setaString(String aString) {
this.aString = aString;
}
@Override
public String toString() {
return "A [aString=" + aString + "]";
}
}
B.java
public class B {
private String b;
public String getB() {
return b;
}
public B setB(String b) {
this.b = b;
return this;
}
public B() {
System.out.println("B()");
}
@Override
public String toString() {
return "B [b=" + b + "]";
}
}
测试类:
public class TestAB {
public static void main(String[] args) {
new A(new B().setB("BBB")).toString();
}
}
结果:原以为是先xmlbeanFactory的构造函数先执行,其实是忘记了函数的参数的初始化问题...
看完java虚拟机再研究,这里先记录...