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();
}
}