您的位置 首页 java

Java核心知识 Spring原理十 Spring 依赖注入四种方式

Java核心知识 Spring原理十 Spring 依赖注入四种方式

构造器注入

/*带参数,方便利用构造器进行注入*/

public CatDaoImpl(String message){

this. message = message;

}

<bean id=”CatDaoImpl” class=”com.CatDaoImpl”>

<constructor-arg value=” message “></constructor-arg>

</bean>

setter 方法注入

public class Id {

private int id;

public int getId() { return id; }

public void setId(int id) { this.id = id; }

}

<bean id=”id” class=”com.id “> <property name=”id” value=”123″></property>

</bean>

静态工厂注入

静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象,为了让 spring 管理所

有对象,我们不能直接通过”工程类.静态方法()”来获取对象,而是依然通过 spring 注入的形式获

取:

public class DaoFactory { //静态工厂

public static final FactoryDao getStaticFactoryDaoImpl(){

return new StaticFacotryDaoImpl();

}

}

public class SpringAction {

private FactoryDao staticFactoryDao; //注入对象

//注入对象的 set 方法

public void setStaticFactoryDao(FactoryDao staticFactoryDao) {

this.staticFactoryDao = staticFactoryDao;

}

}

//factory-method=”getStaticFactoryDaoImpl”指定调用哪个工厂方法

<bean name=”springAction” class=” SpringAction” >

<!–使用静态工厂的方法注入对象,对应下面的配置文件–>

<property name=”staticFactoryDao” ref=”staticFactoryDao”></property>

</bean>

<!–此处获取对象的方式是从工厂类中获取静态方法–>

<bean name=”staticFactoryDao” class=”DaoFactory”

factory-method=”getStaticFactoryDaoImpl”></bean>

实例工厂

实例工厂的意思是获取对象实例的方法不是静态的,所以你需要首先 new 工厂类,再调用普通的

实例方法:

public class DaoFactory { //实例工厂

public FactoryDao getFactoryDaoImpl(){

return new FactoryDaoImpl();

}

}

public class SpringAction {

private FactoryDao factoryDao;

//注入对象

public void setFactoryDao(FactoryDao factoryDao) {

this.factoryDao = factoryDao;

}

}

<bean name=”springAction” class=”SpringAction”>

<!–使用实例工厂的方法注入对象,对应下面的配置文件–>

<property name=”factoryDao” ref=”factoryDao”></property>

</bean>

<!–此处获取对象的方式是从工厂类中获取实例方法–>

<bean name=”daoFactory” class=”com.DaoFactory”></bean>

<bean name=”factoryDao” factory-bean=”daoFactory”

factory-method=”getFactoryDaoImpl”></bean>

文章来源:智云一二三科技

文章标题:Java核心知识 Spring原理十 Spring 依赖注入四种方式

文章地址:https://www.zhihuclub.com/177104.shtml

关于作者: 智云科技

热门文章

网站地图