IOC创建对象的三种方式

  1. 无参构造初始化
  2. 有参构造初始化赋值
    1. 通下标赋值(构造方法)
    2. 通过数据类型赋值
    3. 通过参数名赋值

无参构造初始化

Anima类

1
2
3
4
5
6
7
public class Animal {
String name;
public Animal(){
name="guolu";
}
}

Bean配置:

1
<bean id="animal" class="Animal" > </bean>

TestAnimal测试类:

1
2
3
4
5
6
7
8
9
10
11
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestAnimal {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean01.xml");
Animal animal01=(Animal) applicationContext.getBean("animal");
System.out.printf(animal01.name);
}
}

运行结果:guolu

有参构造初始化赋值

·通下标赋值(构造方法)
·通过数据类型赋值
·通过参数名赋值
注:匹配的是构造方法的顺序(必须创建构造方法)

通下标赋值(构造方法)

Anima类

1
2
3
4
5
6
7
public class Animal {
String name;
public Animal(String name) {
this.name=name;
}
}

Bean配置:

1
2
3
<bean id="animal" class="Animal" >
<constructor-arg index="0" value="金毛"></constructor-arg>
</bean>

TestAnimal测试类:

1
2
3
4
5
6
7
8
9
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestAnimal {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean01.xml");
Animal animal01=(Animal) applicationContext.getBean("animal");
System.out.printf(animal01.name);
}
}

运行结果:金毛

通过数据类型赋值

Anima类

1
2
3
4
5
6
7
public class Animal {
String name;
public Animal(String name) {
this.name=name;
}
}

Bean配置:

1
2
3
<bean id="animal" class="Animal" >
<constructor-arg type="java.lang.String" value="二哈"></constructor-arg>
</bean>

TestAnimal测试类:

1
2
3
4
5
6
7
8
9
10
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestAnimal {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean01.xml");
Animal animal01=(Animal) applicationContext.getBean("animal");
System.out.printf(animal01.name);
}
}

运行结果:二哈

通过参数名赋值

Anima类

1
2
3
4
5
6
public class Animal {
String name;
public Animal(String name) {
this.name=name;
}
}

Bean配置:

1
2
3
<bean id="animal" class="Animal" >
<constructor-arg name="name" value="铁蛋"></constructor-arg>
</bean>

TestAnimal测试类:

1
2
3
4
5
6
7
8
9
10
11
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestAnimal {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean01.xml");
Animal animal01=(Animal) applicationContext.getBean("animal");
System.out.printf(animal01.name);
}
}

运行结果:铁蛋


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏