控制反转(Inverse Of Control)不是什么技术,而是一种设计思想。它的目的是指导我们设计出更加松耦合的程序。更加有利于程序维护!
控制:对象的创建
例如要使用UserServiceImpl: UserService userService = new UserServiceImpl()
手动new的缺点:
1. 每次使用都需要new,可能导致重复创建,耗费资源。
2. 不方便切换实现类,需要修改java源代码-----耦合度高!
反转:对象的创建由 开发者在类中手动new 反转到 由Spring容器创建,所有创建出来的实例都交给Spring统一管理。它是后续AOP的一个前提!
案例分析:使用spring的ioc实现解耦合
1. 导入spring的依赖(spring-context),若要测试,导入junit包
2. 编写持久层
3. 在resources下创建applicationContext.xml配置文件,在配置文件中将dao配置进去
如果出现以下黄色警告,需要处理