1、构造方法
默认
@Data
@Slf4j
@Component(value = "computer")
public class Computer {
@Resource
private IntelCpu intelCpu;
public Computer() {
log.info("Computer构造方法");
}
public void play() {
intelCpu.run();
log.info("Computer正在运行");
}
}
@Test
public void test() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Computer computer = (Computer) applicationContext.getBean("computer");
computer.play();
}
2、静态工厂方法
@Data
@Slf4j
@Component(value = "computer")
public class Computer {
@Resource
private IntelCpu intelCpu;
private static Computer computer = new Computer();
//此方法必须是静态的
public static Computer getInstance() {
log.info("静态工厂方法执行");
return computer;
}
public Computer() {
log.info("Computer构造方法");
}
public void play() {
intelCpu.run();
log.info("Computer正在运行");
}
}
<bean id="intelCpu" class="com.phz.entity.IntelCpu"/>
<bean id="computer" class="com.phz.entity.Computer" factory-method="getInstance">
<property name="intelCpu" ref="intelCpu"/>
</bean>
3、实例工厂方法
public class EntityLocator {
private static Computer computer = new Computer();
public EntityLocator() {
}
public Computer createComputer() {
log.info("实力工厂方法执行");
return computer;
}
}
<bean id="entityLocator" class="com.phz.entity.EntityLocator"/>
<bean id="intelCpu" class="com.phz.entity.IntelCpu"/>
<bean id="computer" factory-bean="entityLocator" factory-method="createComputer">
<property name="intelCpu" ref="intelCpu"/>
</bean>