SpringIOC创建对象的三种方式
第一种:
无参构造方法:参考上一篇文章
第二种
有参构造方法
1>.根据参数下标去创建
User.java
public class User {
private String name;
private String age;
public void setName(String name) {
this.name = name;
}
public void setAge(String age) {
this.age = age;
}
public User(String name, String age) {
super();
this.name = name;
this.age = age;
}
public void show(){
System.out.println("name:" + name + "age:" + age);
}
}
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd ">
<bean id = "user" class = "com.cn.bean.User">
<constructor-arg index = "0" value = "全蛋男神"/>
<constructor-arg index = "1" value = "24"/>
</bean>
</beans>
2>.根据参数名去创建
其他同1方法
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd ">
<bean id = "user" class = "com.cn.bean.User">
<constructor-arg name = "name" value = "全蛋男神"/>
<constructor-arg name = "age" value = "24"/>
</bean>
</beans>
3>.根据参数类型去创建
其他同上
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd ">
<bean id = "user" class = "com.cn.bean.User">
<constructor-arg type = "java.lang.String" value = "全蛋男神"/>
<constructor-arg type = "java.lang.String" value = "24"/>
</bean>
</beans>
结果都是下图所示
**
第三种
**
1>通过静态工厂创建
BeansFactory.java
public class BeansFactory {
public static User newInstance(String name, String age) {
return new User(name, age);
}
}
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd ">
<bean id = "user" class = "com.cn.bean.BeansFactory"
factory-method = "newInstance">
<constructor-arg index="0" value="全蛋男神"/>
<constructor-arg index="1" value="24"/>
</bean>
</beans>