[toc]
| 单词 | 词性 | 音标 | 含义 |
|---|---|---|---|
| wire | v. / n. | /waɪə(r)/ | 连接;导线(编程中常比喻“组件间的依赖连接”,如Spring中通过配置将Bean与依赖“wire”起来,建立关联关系) |
| wired | adj. | /ˈwaɪəd/ | 已连接的;有线的(在Spring中表示Bean之间的依赖关系已通过容器自动建立,如“wired dependency”指已完成注入的依赖) |
| Autowired | v. (过去分词作形容词) | /ˈɔːtəʊˈwaɪəd/ | 自动装配(Spring中的核心注解@Autowired,用于自动注入依赖对象,容器会根据类型匹配并“wire”(连接)对应的Bean,简化手动配置) |
| Primary | adj. | /ˈpraɪməri/ | 主要的;首要的(Spring中@Primary注解用于指定当存在多个同类型Bean时,优先被@Autowired选择的“主要Bean”,解决依赖注入的歧义性) |
Lecture06-容器-[实验04]@Autowired

自动装配是相对于手动装配来说的,手动装配就是以前的做法:
public class TigerServiceImpl implements TigerService { // 把 TigerDao 的对象装配给 TigerService,这样在 Service 类中就有 Dao 可以用了 private TigerDao tigerDao = new TigerDaoImpl();
一、提出新的需求
在EmpController中声明方法,模拟处理请求,方法中调用EmpService的方法:
@Controller
public class EmpController {
private EmpService empService;
public void showList() {
List<String> empList = empService.showList();
for (String emp : empList) {
System.out.println("emp = " + emp);
}
}
}
然后在EmpService方法中调用EmpDao方法:
@Service
public class EmpServiceImpl implements EmpService {
private EmpDao empDao;
@Override
public List<String> showList() {
return empDao.getList();
}
}
然后在EmpDao中查询数据返回:
@Repository
public class EmpDaoImpl implements EmpDao {
@Override
public List<String> getList() {
return Arrays.asList("emp_tom", "emp_jerry", "emp_bob");
}
}
这里就会遇到一个问题
- 在EmpController中,如何注入EmpService对象?
- 在EmpService中,如何注入EmpDao对象?
二、使用@Autowired注解
@Controller
public class EmpController {
@Autowired
private EmpService empService;
public void showList() {
List<String> empList = empService.showList();
for (String emp : empList) {
System.out.println("emp = " + emp);
}
}
}
@Service
public class EmpServiceImpl implements EmpService {
@Autowired
private EmpDao empDao;
@Override
public List<String> showList() {
return empDao.getList();
}
}