1. 什么是spring
Spring 是一个轻量级开源框架,简化了企业级应用开发。
Spring 的核心是 IOC 和 AOP。
spring 提供了展示层springMVC、持久层spring jdbc、业务层事务控制、spring单元测试的开发技术。
spring 可以整合第三方框架和类库。
Spring 可以使用简单的 JavaBean 实现以前只有 EJB 才能实现的功能。
目前开发中,应用的是spring 5.0 + JDK1.8,反射的速度JDK1.7的100多倍。
我们项目里使用的应该是spring 为4.2.4 + jdk 1.8。
2. IOC
1.什么是IOC:控制反转,将创建对象的权力,交给spring框架来管理。
2.IOC的作用:IOC容器创建、管理类对象,避免硬编码造成的代码过度耦合。
硬编码:就是在代码中,直接new对象,从而提高了代码之间耦合度,如果new出来的对象类同事还没有完成,影响开发进度,我们使用反射技术,来解决这种问题,解决编译期的异常问题。
3.IOC底层原理:配置文件+反射技术+工厂模式实现,将对象交给map容器管理。
1).properties文件中,key为类对象的名称,value是类的权限定类名。
读取properties的技术: ResourceBundle类、或者Properties类实现。(下边补充)
2).使用反射技术,来创建实例对象,class.forName("权限定类名")。
3).通过工厂模式,初始化时读取配置文件信息,利用反射技术创建对象,将对象存入到map集合中,由工厂方法查询 map集合,返回对应的对象即可。
4.依赖注入:对类的属性赋值。
5.管理对象。
/**
测试类:
ApplicationContext实现类:ClassPathXmlApplicationContext 从类的根路径下家在配置文件
FileSystemXmlApplicationContext 从磁盘的路径中,加载配置文件
AnotationConfigApplicationCOntext 使用注解开发,由此类创建spring容器
**/
ApplicationContext applicationContext = new ClasspathApplicationContext("bean.xml");
AccountService accountService=(A...S...)applicationContext.getBean("accountService");
2.1 配置文件