一、IoC创建对象的方式
1.1 无参构造创建(默认)
public class User {
private String name;
public User ( ) {
System. out. println ( "User的无参构造方法!" ) ;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public void show ( ) {
System. out. println ( "name=" + name) ;
}
}
编写applicationContext.xml配置文件。
< bean id= "user" class = "com.dmj.entity.User" >
< property name= "name" value= "孙悟空" / >
< / bean>
public class MyTest {
public static void main ( String[ ] args) {
ApplicationContext context = new ClassPathXmlApplicationContext ( "applicationContext.xml" ) ;
User user = ( User) context. getBean ( "user" ) ;
user. show ( ) ;
}
}
总结 :输出 " User的无参构造方法 " 说明getBean的时候,这个对象就已经被创建了。引出问题 :若我们把无参构造删了,写个有参构造,此时会出现初始化失败问题。
1.2 有参构造创建(三种方式)
< bean id= "user" class = "com.dmj.entity.User" >
< constructor- arg index= "0" value= "孙悟空打妖怪!" / >
< / bean>
方式二 :类型创建方式(不推荐,假设两个参数都是String,就不行了)。
< bean id= "user" class = "com.dmj.entity.User" >
< constructor- arg type= "java.lang.String" value= "孙悟空" / >
< / bean>
< bean id= "user" class = "com.dmj.entity.User" >
< constructor- arg name= "name" value= "孙悟空" / >
< / bean>
输出结果都一样。