IOC控制反转,是指通过IOC容器对于Bean进行管理,不需要我们用new的方式来创建对象。(IOC容器,实现了beanFactory这个顶层接口)通过@ComponentScan扫描需要由IOC容器管理的类(资源定位),再实例化bean对象,对对象内的@autowired属性进行DI(依赖注入)。componentScan可以通过配置lazyInit属性,来延迟初始化。
AOP面向切面编程,通俗说叫约定编程,约定规则,然后将代码织入事先约定的流程中,对功能进行加强或者控制对其访问。是代理模式的实现。比如,在对于事务的控制上,我们只需要添加@transactional注解,就能进行事务控制,对于数据库的连接/关闭,事务的commit/rollback,都由AOP帮我们处理了,我们只需要关注业务本身。
前置通知、后置通知、异常通知、返回通知:
无论是否发生异常,后置通知(after)都会被执行。若发生异常,异常通知(afterThrowing)会被触发,而返回通知(afterReturning)则不会被执行。