问题:谈一下你对spring框架的认识
回答:框架是一种半成品,或者说一组组件,是一种不断升级的软件;具体的实现技术是应用的底层支撑,技术本身的复杂性和技术的风险性会直接对应用造成冲击,但是应用本身又是每个企业的核心,是竞争力所在;为了提高竞争力,就需要将技术和应用本身解耦。
其次说一下软件开发:同样也需要做到高内聚、低耦合,举个例子,我们一开始学习Java时,业务层调用持久层时,是通过new 的形式获得一个对象,换句话说业务层是依赖持久层的接口和实现类的,如果没有持久层的实现类,编译是过不了的,这就是所谓的依赖,在实际开发中要杜绝。
IOC:spring的核心之一,他就是一个容器,就是将对象放在容器里面,用的时候取出来就行,不需要new,结合上面说的开发场景,持久层的具体对象的创建权交给spring去做,业务层用的时候找springIoC容器去要对应的对象,这样就可以完成解耦的操作。
spring用的是工厂模式进行解耦的:实际开发中,可以 把三层都使用的东西用配置文件配置起来,当启动服务器应用加载的时候,让一个类中的方法通过读取配置文件,把这些对象创建出来并保存在ioc容器里面,以后的使用的时候直接拿过来用,那么,读取这个配置文件,创建三层对象的对象就是工厂。
`ApplicationContext app = new ClassPathXmlApplicationContext("");`
说到底,IOC就是被动接收的方式获取对象的思想