@Autowire和@Resource

小编认为:在项目使用过程中,@Autowire和@Resource差别不大,使用哪一个都可以

@Autowire

  • 作用:可以对类成员变量,方法以及构造函数进行标注,让spring完成bean自动装配(spring通过依赖注入创建实例)的工作。
@Target({
    
    ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {
    
    

	/**
	 * Declares whether the annotated dependency is required.
	 * <p>Defaults to {@code true}.
	 */
	boolean required() default true;

}
  • 使用:
public class ConditionTitleServiceImpl implements IConditionTitleService {
    
    
 
 	//创建类的实例,无需new对象
    @Autowired
    private IDataResourceDao iDataResourceDao;
    
    //set方法使用
    private People people;
    @Autowired
    public void setPeople(People people){
    
    
		this.people = people;
	}
    
    //构造法方法的使用
    private People people;
    @Autowired
    public ConditionTitleServiceImpl(People people){
    
    
		this.people = people;
	}
	……
}

@Resource

  • 作用:按照名字进行匹配,如果没有找到同名bean,则按照类型进行匹配,最终实现让spring完成bean自动装配(spring通过依赖注入创建实例)的工作。
@Target({
    
    TYPE, FIELD, METHOD})
@Retention(RUNTIME)
@Repeatable(Resources.class)
public @interface Resource {
    
    
  ……
}
  • 使用
public class ConditionTitleServiceImpl implements IConditionTitleService {
    
    
    @Resource
    private IConditionTitleDao iConditionTitleDao;
	……
}

猜你喜欢

转载自blog.csdn.net/YaraRen/article/details/113478325
今日推荐