总结:spring
一、tomcat在启动的时候,会启动Spring的容器数据库
二、spring的容器根据xml的配置或者注解,实例化bean对象,再根据xml配置或者注解,对bean对象之间的引用关系进行依赖注入(一个bean依赖了另外一个bean)tomcat
三、底层经过反射技术,直接根据你的类构建相应地对象编码
系统的类与类之间实现了解耦合代理
在实现数据库业务代码的类中,一般会涉及一些事务性的数据库逻辑方法,这些方法会须要进行事务管理(开启,回滚,提交),这些重复性质的代码,spring就会经过aop机制(核心是动态代理技术)进行事务管理。cdn
过程:xml
作切面:对象
在某些类(好比MyserviceXXX类)中的全部方法中都进行织入代码,在这些方法开始运行的时候,都会区开启一个事务,在这些全部的方法执行完毕以后,判断一下是否抛出异常来判断一下,若是抛出异常就回滚事务,若是没有就提交事务。blog
cgclib & jdk动态代理接口
若是一个类实现了某个接口,spring aop会使用jdk动态代理,生成一个实现一样的接口的代理类,构造一个实例对象出来。
一个类没有实现接口,spring aop会改用cglib生成动态代理,其会生成一个该类的子类出来,动态生成字节码,覆盖一些方法,在方法里进行加强