spring Ioc(Inversion of Control)创建对象相关内容
首先放上实体类:
public class Hello {
private String name;
private int age;
public Hello(){
}
public Hello(String name){
this.name=name;
}
public Hello(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void show(){
System.out.println("hello," + age + "岁的" + name);
}
}
然后就是xml文件内容
<!--bean就是java对象 , 由Spring创建和管理-->
<!--根据无参构造函数创建对象-->
<bean id="hello1" class="com.bh.pojo.Hello">
<!--为属性name,age赋值-->
<property name="name" value="xyongz1"/>
<property name="age" value="20"/>
</bean>
<!--scope属性指定spring创建对象的方式:单个对象:singleton(spring默认),多个对象:prototype -->
<bean id="hello1" class="com.bh.pojo.Hello" scope="prototype">
<!--为属性name,age赋值-->
<property name="name" value="xyongz1"/>
<property name="age" value="20"/>
</bean>
<!--根据只有一个参数的构造函数创建对象-->
<!--方法1:根据参数名称 String name-->
<bean id="hello2_1" class="com.bh.pojo.Hello">
<constructor-arg name="name" value="xyongz2_1"/>
<property name="age" value="20"/>
</bean>
<!--方法2:根据参数下标(从0开始)-->
<bean id="hello2_2" class="com.bh.pojo.Hello">
<constructor-arg index="0" value="xyongz2_2"/>
<property name="age" value="20"/>
</bean>
<!--方法3:根据参数类型-->
<bean id="hello2_3" class="com.bh.pojo.Hello">
<constructor-arg type="java.lang.String" value="xyongz2_3"/>
<property name="age" value="20"/>
</bean>
<!--根据有两个参数的构造函数创建对象-->
<bean id="hello3" class="com.bh.pojo.Hello">
<constructor-arg name="name" value="xyongz3"/>
<constructor-arg name="age" value="20"/>
</bean>
总结:
1.如果要创建多个对象,记得给bean标签加上scope="prototype"
2.创建对象是多少个参数的构造函数就加几个constructor-arg标签
3.id 是bean的标识符,要唯一,如果没有配置id,name就是默认标识符,如果配置id,又配置了name,那么name是别名,name可以设置多个别名,可以用逗号,分号,空格隔开,如果不配置id和name可以根据applicationContext.getBean(.class)获取对象;

浙公网安备 33010602011771号