text: 如何理解spring的ioc及di
  ioc就是控制翻转或是依赖注入。通俗的讲就是如果在什么地方需要一个对象，你自己不用去通过new 生成你需要的对象，而是通过spring的bean工厂为你长生这样一个对象。aop就是面向切面的编程。比如说你每做一次对数据库操作，都要生成一句日志。如果，你对数据库的操作有很多类，那你每一类中都要写关于日志的方法。但是如果你用aop，那么你可以写一个方法，在这个方法中有关于数据库操作的方法，每一次调用这个方法的时候，就加上生成日志的操作。说的不是很清晰，多写多看就能明白了。通过DI（Dependency Injection，依赖注入）来实现的。比如对象A需要操作数据库，以前我们总是要在A中自己编写代码来获得一个Connection对象，有了 spring我们就只需要告诉spring，A中需要一个Connection，至于这个Connection怎么构造，何时构造，A不需要知道。在系统运行时，spring会在适当的时候制造一个Connection，然后像打针一样，注射到A当中，这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行，而这个Connection是由spring注入到A中的，依赖注入的名字就这么来的。
  .1、ioc是什么　　ioc—inversion of control，即“控制反转”，不是什么技术，而是一种设计思想。在java开发中，ioc意味着将你设计好的对象交给容器控制，而不是传统的在你的对象内部直接控制。如何理解好ioc呢？理解好ioc的关键是要明确“谁控制谁，控制什么，为何是反转（有反转就应该有正转了），哪些方面反转了”，那我们来深入分析一下：　　●谁控制谁，控制什么：传统java se程序设计，我们直接在对象内部通过new进行创建对象，是程序主动去创建依赖对象；而ioc是有专门一个容器来创建这些对象，即由ioc容器来控制对 象的创建；谁控制谁？当然是ioc 容器控制了对象；控制什么？那就是主要控制了外部资源获取（不只是对象包括比如文件等）。　　●为何是反转，哪些方面反转了：有反转就有正转，传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象，也就是正转；而反转则是由容器来帮忙创建及注入依赖对象；为何是反转？因为由容器帮我们查找及注入依赖对象，对象只是被动的接受依赖对象，所以是反转；哪些方面反转了？依赖对象的获取被反转了。