7.11.1 Dependency Injection with @Inject and @Named

作为@Autowired的替代,@javax.inject.Inject可以向下面使用:

public class SimpleMovieLister{
    private MovieFinder movieFinder;

    @Inject
    public void setMovieFinder(MovieFinder movieFinder){
        this.movieFinder = movieFinder;
    }

    public void listMovies(){
    }
}

像@Autowired一样,可以在域,方法和构造器级别上使用@Inject。而且,你可以声明把你的注入点作为Provider。这样在你需要的时候才会注入进来,通过调用Provider.get()

public class SimpleMovieLister{
    private Provider<MovieFinder> movieFinder;

    @Inject
    public void setMovieFinder(Provider<MovieFinder> movieFinder){
        this.movieFinder = movieFinder;
    }

    public String toString(){
        this.movieFinder.get().toString();
    }
}

results matching ""

    No results matching ""