spring框架是java应用最广的框架,他的成功源于理念,而不是技术本身;
Ioc是一个容器,
IOC:Inversion of Control控制反转,也叫(Dependency Injection)依赖注入, dao接口的实现不再是业务逻辑层调用工厂类去获取,而是通过容器(spring)来自动的为我们的业务层设置Dao的实现类,这样整个过程就反过来,以前是我们业务层主动去获取dao,而现在是dao主动被设置到业务逻辑层中来了,这个也就是反转控制的由来。通过IOC,我们就可以在不修改任何代码的情况下,无缝地实现数据库的换库迁移
简单一点说:
IOC就是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是通过容器生成,同时,要是产生的是单例的bean,他还可以给管理bean的生命周期。
aop 是一个切面 也可以理解是拦截器
AOP面向切面编程将程序中的交叉业务逻辑(比如安全,日志,事务),封装成一个切面,然后注入到目标业务逻辑中去。
比如:很多方法都可能会抛异常,你要记录这个异常到日志中去,可以写个拦截器,在这个类中记录日志,在spring.xml中配置一个记录这些日志的方法的拦截器,在这个方法执行后调用这个拦截器,记录日志。这样就不用每次抛异常都要手动记录日志。
spring的事务管理用到的就是AOP这样也可以提高程序的内聚性。