作用在自动注入中(不是@Autowire,是default-autowire)
ignoreDependencyType
指定类型如User.class
Class Account {
// 不会被自动注入,User类型已经被自动注入忽略
User user;
}
ignoreDependencyInterface
指定接口如Collection.class
Class Account implements Collection{
List list;
Set set;
//实现了Collection接口的类
//set方法的入参list与属性list均为List接口,这里的list不会被自动注入
public void setList(List list){
this.list = list
}
//set方法的入参set与属性set均为Set接口,这里的set不会被自动注入
public void setSet(Set set){
this.set = set
}
}
用途:
Spring的普通bean的依赖注入时从容器中寻找符合条件的Bean注入进来,但对于特殊的bean如容器ApplicationContext
,BeanFactory
本身,是无法在容器中找到的,这种Bean需要特定的方法来进行注入,即通过ApplicationContextAware
和BeanFactoryAware
来注入。
Spring中已经将ApplicationContextAware
和BeanFactoryAware
作为依赖忽略接口,当有bean实现了这些接口,表示他们需要一个ApplicationContext
注入到自己的applicationContextAware
属性中,会存在以下情况:
private ApplicationContext applicationContext;
public void set applicationContext(ApplicationContext context){
//入参类型和属性类型相同,忽略注入
}
此时就会忽略这个ApplicationContext
依赖的注入