首先关于IoC(Inversion of Control),字面意思即“控制反转”,在Spring框架中,就是用来控制程序中对象的生命周期和对象之间关系的。
以前我们编程时需要在A类中使用B类的对象,我们就需要new一个对象,使用完了还需要销毁,有了IoC之后就不一样了,省去了我们自己手动新建的步骤,类似于房产中介一样,把我们需求传递给中介(Spring IoC),告诉他我需要这样一个对象,你帮我找出来,加载好给我使用,用完了你帮销毁,全程只要在适当的时候告诉Spring IoC容器我要使用了,其他工作都由Spring来处理。有了Spring之后所有的对象的创建销毁都由Spring来控制,这样就减小了程序中间的耦合度,使得程序可用性可扩展性更高。
其次,DI(Dependency Injection,依赖注入),举个例子:我们一个登陆验证操作需要连接数据库查询比对数据,如果没有Spring,通过简单的Servlet实现的话,我们的步骤可能是:首先新建数据库连接,然后才能操作数据库,进行验证...有了Spring 之后,这个建立连接的步骤就可以交由Spring来操作,至于什么时候建立,什么时候关闭,我不用管,我只要在我要用这个连接的时候,由Spring注入给我就行了(类似于打针一样),Spring会在适当的时候新建这个连接,然后注入到需要这个连接的类中。这个类需要依赖这个连接才能正常运作,而这个连接不是自己新建的而是由Spring容器帮忙新建然后注入到类中的,这就是依赖注入名字的由来。
最后AOP(Aspect Oriented Programming,面向切面编程),通俗一点的解释就是:我本来需要按照顺序12345..依次做某些事情,然而计划赶不上计划,做完第二件事,我突然有急事需要去处理,在我做完急事之后,继续回来做第三件事,最终也能达到目的!这就是AOP,在业务处理过程中,做了其他事情也不会影响这个业务的正常处理完成!一般用于日志打印,权限控制等等操作。AOP最大的好处就是将与业务逻辑处理无关的代码分离开来,即时后期删除了这些代码,也不会影响正常业务的运行处理,大大提高了程序的可扩展性,减小了业务逻辑类的处理负担。
看了一些文章,总结了一下,有不对的地方敬请各位大神指正!!!谢谢!!!