Spring容器创建对象的方式
准备
创建实体类Team
首先在com.cave.pojo文件夹下创建实体类Team
package com.cave.pojo;
public class Team {
private String id;
private String name;
private String introduction;
public Team(String id, String name, String introduction) {
this.id = id;
this.name = name;
this.introduction = introduction;
System.out.println("含参构造方法被调用");
}
public Team() {
System.out.println("无参构造方法被调用");
}
}
创建Spring配置文件
使用默认的构造方法创建对象
配置文件
<!--1、通过默认构造方法-->
<bean id="team1" class="com.cave.pojo.Team"></bean>
测试类
@Test
public void Test01() {
String springConfig="application.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(springConfig);
}
测试结果
使用带参数的构造方法创建对象
配置文件
<!-- 2、通过带参数的构造方法-->
<bean id="team2" class="com.cave.pojo.Team">
<!--name:表示参数的名称-->
<constructor-arg name="id" value="1001"/>
<constructor-arg name="name" value="勇士"/>
<constructor-arg name="location" value="金州"/>
</bean>
<bean id="team3" class="com.cave.pojo.Team">
<!--index:表示参数的下标索引-->
<constructor-arg index="0" value="1002"/>
<constructor-arg index="1" value="热火"/>
<constructor-arg index="2" value="迈阿密"/>
</bean>
测试类
@Test
public void Test02(){
String springConfig="application.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(springConfig);
}
测试结果
使用工厂类创建对象
创建工厂类
在com.cave.pojo文件夹下创建实体类MyFactory
package com.cave.pojo;
public class MyFactory {
/**
* 实例方法
* @return
*/
public Team instanceFun(){
System.out.println("instanceFun被调用");
return new Team("1003","Lakers","LUO");
}
public static Team staticFun(){
System.out.println("staticFun被调用");
return new Team("1004","lanWan","Chi");
}
}
配置文件
<!--3.通过工厂方法-->
<!--3.1静态方法-->
<bean id="staticTeam" class="com.cave.pojo.MyFactory" factory-method="staticFun"/>
<!--3.2实例方法-->
<bean id="factory" class="com.cave.pojo.MyFactory" />
<bean id="instanceTeam" factory-bean="factory" factory-method="instanceFun"/>
测试类
@Test
public void Test02(){
String springConfig="application.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(springConfig);
}