Spring中IOC创建对象的方式
- 通过无参构造器创建对象
实体类:
package com.wbx.test;/*
*@author 王炳祥
*@createTime
*/
public class UserTest2 {
private String name;
//无参构造器
public UserTest2(){
System.out.println("利用无参构造器创建对象");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name="+name);
}
}
xml配置代码:
<bean id="uname2" class="com.wbx.test.UserTest2">
</bean>
测试代码:
import com.wbx.test.UserTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class mytest {
public static void main(String[] args){
ApplicationContext context = new ClassPathXmlApplicationContext("userTest.xml");
//spring一下会getbean全部(此时输出的是UserTest2中的无参构造器中的输出内容)
UserTest uname = (UserTest) context.getBean("uname");
// uname.show();
}
}
- 通过有参构造器创建
实体类:
package com.wbx.test;/*
*@author 王炳祥
*@createTime
*/
public class UserTest {
private String name;
public UserTest(String name){
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name="+name);
}
}
xml文件的配置:
<bean id="uname" class="com.wbx.test.UserTest">
<!--第一种,下标赋值-->
<!--<constructor-arg index="0" value="ai小余"/>-->
<!--第二种,通过类型创建(如果有参数类型相同,则会出现问题),不推荐使用-->
<!--<constructor-arg type="java.lang.String" value="1314"/>-->
<!--第三种,直接通过参数名来设置-->
<constructor-arg name="name" value="长安"/>
</bean>
测试代码:
import com.wbx.test.UserTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class mytest {
public static void main(String[] args){
ApplicationContext context = new ClassPathXmlApplicationContext("userTest.xml");
//spring一下会getbean全部(此时输出的是UserTest2中的无参构造器中的输出内容)
UserTest uname = (UserTest) context.getBean("uname");
uname.show();
}
}