含义:自动装配,装配JavaBean,按照类型,通过set方法进行装配,set方法可以省略 位置:修 饰成员变量
语法:@AutoWired(属性名="属性值")
作用: 替换:<property></property>
public class StudentServiceImp implements StudentService {
@Autowired
private StudentDao dao;
public void setDao(StudentDao dao) {
this.dao = dao;
}
public void add() {
System.out.println("======service的新增========");
dao.add();
}
}
注意:
1.次注解按照类型装配
2.要结合扫描一起使用,没有扫描在容器中找不到用@AutoWired注入的类
3.按照类型装配,容器中必须有一个类型与之匹配,如果没有类型可以匹配,则会报异常 NoSuchBeanDefinitionException
4.按照类型装配,容器中如果有多个类型与之匹配,则会自动切换为按照名称装配,如果还没有,则会报异常 NoUniqueBeanDefinitionException
有两个实现类实现同一个接口,它会按照名称进行匹配,方法名和哪个实现类的名称一样就会匹配哪个。
5.使用@Autowired的当前类也必须由spring容器托管(即@Coponent、@Controller、@Service 、@repository修饰类)
要是有的想按照类型有的想按照名字可以尝试@Resource
@Resource的作用相当于@Autowired,只不过@Autowired按类型自动注入,而@Resource默认按 名称自动注入。@Resource有两个属性是比较重要的,分是name和type,顾名思义name是按照名称。type是按照类型