使用 Field 注入(注解方式):减轻配置文件的臃肿程度。
原因:在 xml 中注入的话,如果变量很多,那会使得行数很多,很臃肿。
定义变量时加上注解:
@Resource
private PersonDao personDao;
或者在 setter 函数前面加上注解:
@Resource
public void setPersonDao(PersonDao personDao) {
this. personDao = personDao;
}
均可以。
这样的话,在 xml 中,只需要定义 bean 即可:
< bean id= "personDao" class = "person.dao.impl.PersonDaoBean"/>
因为被 @Resource 注解的变量或者方法,会先根据变量名或者方法名,在 xml 中找到有一致 id 的<bean>,然后其 class 属性的值即为将要注入的类。
如果没有一致 id 的<bean>,即改为了:
< bean id= "haha" class = "person.dao.impl.PersonDaoBean"/>
那么会按照类型来匹配,即:字段的类型为 PersonDao,则扫描 class 中有没有含有 PersonDao 的 bean,有的话,便匹配上了。上面这个例子就可以匹配上,将 PersonDaoBean 给了 personDao。
可以使用指定 bean 名称的注解,即
@ Resource(name= "haha")
来强制匹配相同名称的<bean>。如果匹配不到,则会报错,不会再按照类型来匹配。