spring学习之@Autowired

一. 用法1:

public class SimpleMovieLister{
    //注解成员变量
    @Autowired
    private MovieFinder movieFinder;
    //注解构造器
    @Autowired
    public SimpleMovieLister(){
    }
    //注解setter方法
    @Autowired(required=false)
    public void setMovieFinder(MovieFinder movieFinder){
        this.movieFinder = MovieFinder;
    }
}

(注:1.@Autowired 可以对setter方法,构造器,以及成员变量进行注解。
2.默认情况,如果找不到合适的bean(如上的MovieFinder)会导致Autowired失败抛出异常,但是我们可以通过添加required=false(如上的setter方法)来避免。
3.每个类只能有一个被标记为required=true)
二. 用法2:
可以使用Autowired注解那些众所周知的接口如:BeanFactory,ApplicationContext,Evironment,ResourceLoader等。

public class MovieRecommender{
    @Autowired
    private ApplicationContext context;
    public MovieRecommender(){
    }
}

三. 用法3:
可以注解需要该类型数组,集合等的方法和字段,目的是提供所有类型的Bean;

private set<MovieCatlog> movieCatlog;

@Autowired
public void setMovieCatlogs(set<MovieCatlog> movieCatlog){
    this.movieCatlog = movieCatlog;
}

//or
private map<String,MovieCatlog> movieCatlog;

@Autowired
public void setMovieCatlogs(map<String,MovieCatlog> movieCatlog){
    this.movieCatlog = movieCatlog;
}

(注:1.可以通过添加@Order使数组或集合有序
2.@Autowired是由 spring 的BeanPostProcessor处理,所以不能在自定义的BeanPostProcessor中使用@Autowired,如果要使用这些类型,可以同xml或@bean注解加载)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值