@Autowired 接口
时间: 2023-10-09 19:06:24 浏览: 85
@Autowired 是 Spring 框架中的一个注解,用于自动注入对象,可以用于类、属性、方法等上面。
在接口中使用 @Autowired 注解时,需要搭配使用 @Qualifier 注解,指定具体的实现类。例如:
```
public interface UserDao {
void addUser();
}
@Repository
public class UserDaoImpl implements UserDao {
@Override
public void addUser() {
System.out.println("add user");
}
}
@Service
public class UserService {
@Autowired
@Qualifier("userDaoImpl")
private UserDao userDao;
public void addUser() {
userDao.addUser();
}
}
```
在上面的代码中,通过 @Autowired 注解自动注入了 UserDao 接口的实现类 UserDaoImpl。通过 @Qualifier 注解指定了实现类的具体名称,避免了注入出错的可能性。在 UserService 类中,调用了 UserDao 接口的方法 addUser()。
需要注意的是,在接口中使用 @Autowired 注解时,需要搭配使用 @Qualifier 注解指定实现类,否则会抛出 NoUniqueBeanDefinitionException 异常。同时,如果有多个实现类可以注入,也需要使用 @Qualifier 注解指定具体的实现类。
阅读全文