首页 > 代码库 > Spring注入

Spring注入

Spring注入

Spring通过依赖注入这种解耦方式,让Spring的Bean以配置文件组织在一起.

不管是设值注入还是依赖注入,对象都是由spring容器生成

二种注入方式:

设值注入:

<bean id="唯一标识" class="实现类">

  <property name="要注入的属性名" ref="要注入的对象id"/>

</bean>

<bean id="被注入对象的id" class="实现类"></bean>

构造注入:

必须先写一个无参的构造方法,然后构造方法参数必须是属性值,然后bean

<bean id="唯一标识" class="实现类">

  <constructor-org ref="要注入的对象id"/>

</bean>

<bean id="被注入对象的id" class="实现类"></bean>

 

 

附上代码:

public class Chinese implements Person{

private Axe axe;


public Chinese() {}
public Chinese(Axe axe){
this.axe=axe;
}
//构造器注入

//值注入
/* public void setAxe(Axe axe) {
this.axe = axe;
}*/
@Override
public void useAxe() {
System.out.println(axe.chop());
}

}

 

public class SteelAxe implements Axe {

@Override
public String chop() {
return "Steel";
}

}

 

public class StoneAxe implements Axe {

@Override
public String chop() {
return "斧头好慢...";
}

}

 

 

<bean id="personService" class="com.service.PersonService">
<property name="name" value="http://www.mamicode.com/yinxin"/>
</bean>
<bean id="chinese" class="com.service.impl.Chinese">
<!-- <property name="axe" ref="stoneAxe"/> -->
<constructor-arg ref="steelAxe"/>
</bean>
<bean id="stoneAxe" class="com.service.impl.StoneAxe"/>
<bean id="steelAxe" class="com.service.impl.SteelAxe"/>

public interface Axe {
public String chop();
}

 


public class Chinese implements Person{

private Axe axe;


public Chinese() {}
public Chinese(Axe axe){
this.axe=axe;
}
//构造器注入

//值注入
/* public void setAxe(Axe axe) {
this.axe = axe;
}*/
@Override
public void useAxe() {
System.out.println(axe.chop());
}

}

Spring注入