IOC
1.理论推导
-
UserDao----------------------------接口
-
UserDaoImpl----------------------实现类
-
UserService------------------------业务接口
-
UserServiceImpl-----------------业务实现类
-
实现步骤
1.导入spring-webmvc坐标 2.创建实现类及接口类 3.测试
-
思想的变化
-
原来的代码
public class UserServiceImpl implements UserService { private UserMapper userMapper=new UserMapperImpl(); private UserMapper userMapper1=new UserMapperImpl01(); private UserMapper userMapper2=new UserMapperImpl02(); private UserMapper userMapper3=new UserMapperImpl03(); @Override public void getUser() { userMapper.getUser(); userMapper1.getUser(); userMapper2.getUser(); userMapper3.getUser(); } } 测试: public class IocTest { public static void main(String[] args) { //创建实体类获取数据 UserService userService = new UserServiceImpl(); userService.getUser(); } } 结果: mapper实现数据的操作!!!!!!! mapper1111实现数据的操作!!!!!!! mapper22222222实现数据的操作!!!!!!! mapper3333333333实现数据的操作!!!!!!!
-
现在的代码
public class UserServiceImpl01 implements UserService { private UserMapper userMapper; public void setUserMapper(UserMapper userMapper) { this.userMapper = userMapper; } @Override public void getUser() { userMapper.getUser(); } } 测试: public class IocTest01 { public static void main(String[] args) { //创建实体类获取数据 UserService userService = new UserServiceImpl01(); ((UserServiceImpl01) userService).setUserMapper(new UserMapperImpl()); userService.getUser(); UserService userService1 = new UserServiceImpl01(); ((UserServiceImpl01) userService1).setUserMapper(new UserMapperImpl01()); userService1.getUser(); UserService userService2 = new UserServiceImpl01(); ((UserServiceImpl01) userService2).setUserMapper(new UserMapperImpl02()); userService2.getUser(); UserService userService3 = new UserServiceImpl01(); ((UserServiceImpl01) userService3).setUserMapper(new UserMapperImpl03()); userService3.getUser(); } } 结果: mapper实现数据的操作!!!!!!! mapper1111实现数据的操作!!!!!!! mapper22222222实现数据的操作!!!!!!! mapper3333333333实现数据的操作!!!!!!!
-
意义
之前,程序是主动创建对象!控制权在程序员的手上 现在使用了set注入,程序不在具有主动性,转变为被动性接受的对象 这种思想,从本质上解决问题,我们程序员不用再去管理对象的创建,系统的耦合性大大的降低了,可以更加专心的放在业务的实现上,这就是IOC的原型!!!!!!!!!!!!!
-
Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时再从Ioc容器中取出需要的对象。
-