Spring依赖注入的三种方式详解之三(工厂方法注入)
spring框架提供了三种方式的基于xml配置依赖注入:属性注入,构造方法注入,工厂方法注入。本文举例演示工厂方法注入。
例如有类MasterC
packagecom.bwf51coding.bean;
publicclassMasterC {
privateintage;
privateStringname;
privateMasterC(intage, String name) {
this.age=age;
this.name=name;
}
privatestaticMasterCc;
publicstaticMasterC getInstance(intage, String name){
if(c==null){
c=newMasterC(age,name);
}
returnc;
}
@Override
publicString toString() {
return"MasterC [age="+age+", name="+name+"]";
}
}
applicationContext.xml配置文件配置方式如下:
"masterc"class="com.bwf51coding.bean.MasterC"factory-method="getInstance">
undefined"40"/>undefined
undefined"Alice"/>undefined
getInstance()方法就是一个静态工厂方法,该方法唯一实例。其中的和是传递给工厂方法的参数用于实例化对象的构造方法的参数测试类代码:
package com.bwf51coding.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.bwf51coding.bean.MasterC;
public class TestC {
public static void main(String[] args) {
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
MasterC masterc=(MasterC)ac.getBean("masterc");
System.out.println(masterc);
}
【Spring依赖注入的三种方式详解之三(工厂方法注入)】}
推荐阅读
- 属性注入时,spring如何解决循环依赖()
- Spring基础
- spring|阿里巴巴内部纯享的这份SpringBoot+VUE全栈开发实战手册,绝了
- #|jpa、hibernate、spring-data-jpa关系
- SpringCloudAlibaba分布式流量控制组件Sentinel实战与源码分析-中
- springboot如何去除debug日志
- Spring框架系列 - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等)
- springboot中内置tomcat什么时候创建的,又是什么时候启动的()
- Spring Boot工程中如何优雅地处理异常
- 使用Spring.Net框架实现多数据库