依赖注入的方式:简单例子

Spring依赖注入的方式有x种,具体实现分为注解实现和xml实现,两者是类似的,都是保存了类之间的依赖关系。但使用注解通常更加方便。

下面我以为A对象注入其属性B为例介绍各种注入方式。

public class A{
    
    
  private B ab;
}

 
 

setter方法注入

  • 使用属性的setter方法注入 ,这是最常用的方式
  • 属性注入即通过setXxx方法注入Bean的属性值或依赖对象,由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入是实际应用中最常采用的注入方式。

xml配置

public class A{
    
    
  private B ab;
  
  写好set方法
  public void setab(B ab){
    
    
     this.ab = ab;
  }
}
b注册为bean
<bean id="b" class="B">  </bean> 
为a注入依赖
<bean id="a" class="A">  
    <property name="ab" ref="b"/>  
</bean> 

注解配置

public class A{
    
    
  private B ab;
  
  注解自动装配
  @Autowired
  public void setab(B ab){
    
    
     this.ab = ab;
  }
}

构造器注入

构造函数注入是除属性注入之外的另一种常用的注入方式,它保证一些必要的属性在Bean实例化时就得到设置,并且确保了Bean实例在实例化后就可以使用。

xml配置

public class A{
    
    
  private B ab;
  
  构造方法注入
  public A(B ab){
    
    
     this.ab = ab;
  }
}
b注册为bean
<bean id="b" class="B">  </bean> 
为a注入依赖
<bean id="a" class="A">  
    <constructor-arg type="B" ref="b"></constructor-arg>
</bean> 

注解配置

public class A{
    
    
  private B ab;
  
  注解自动装配
  @Autowired
  public A(B ab){
    
    
     this.ab = ab;
  }
}

属性注入

  • 无需set方法
  • 尽可以用于注解方式
public class A{
    
    
  @Autowired
  private B ab;
}

在Java代码中可以使用@Autowired@Resource注解方式进行Spring的依赖注入。两者的区别是:
@Autowired默认按类型装配
@Resource默认按名称装配,当找不到与名称匹配的bean时,才会按类型装配。

猜你喜欢

转载自blog.csdn.net/qq_39304851/article/details/116131365
今日推荐