自动连接java类和自动布线设置器方法的区别。

时间:2014-10-31 13:32:53

标签: spring autowired

有人能告诉我

之间有什么区别
@Autowired
private MovieFinder movieFinder;

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

1 个答案:

答案 0 :(得分:2)

在您提供的示例中,它们是等效的。 setter语法允许你做其他事情,因为你有被调用的方法。例如:

@Autowired
public void setDataSource(DataSource dataSource) {
    this.jdcTemplate= new JdbcTemplate(dataSource);
}

我通常使用第一种表示法,除非我有一个像我的例子一样的特殊情况。

编辑:只是为了澄清,第一种情况称为场注入,通过直接使用反射设置字段来完成。第二种情况是setter注入,通过调用setter方法完成。还有第三种注射方式,即构造注射。