Spring底层实现原理
spring说到底其实离不开IOC和AOP
IOC:
传统开发中创建对象用new,这样导致的后果是耦合度太高,不符合java编程思想,ioc就是让sprin给你创建对象。
原理是:
先加载xml文件,通过dom4j进行解析,通过工厂模式和反射创建对象。实现了高内聚低耦合·。
AOP:
比如一个家庭日常可能有许多事务,比如买菜做饭,看电视等等,这些都是我们可以控制的,AOP就是比如我们日常用电,需要电表来记电费,这个电费不需要我们手动去记但是它又出现在我们日常生活的很多事件中,所以我们可以横向抽取记电费这个功能,将其实现并在我们用电的时候织入进我们的程序中。具体可以表现为日志功能安全验证功能等。
通常有两种方式来实现AOP
1.基于jdk的动态代理(目标实现了接口)
2.基于cglib的动态代理(目标没有实现接口)