IOC的控制反转:
正向控制:由人控制,直接new创建对象
反转:由代码创建对象,由反射创建对象
控制反转的原因:
无法由人为new一个对象,在servlet中tomcat工作不知道你要创造什么样的servlet,最终的核心程序是tomocat,所有的代码要和tomcat合并,tomcat无法new一个controller,所以只能通过反射拿到他们的实例,没办法才采取控制反转,所以控制反转的性能是比较慢的。tomcat和servlet需要dis。。。中转,你new一个controller需要在new一个servlet,但是你new的servlet tomcat也调用不到,如果你new的话,tomcat改动的比较多,耦合度比较高,所以才采取控制反转。控制反转的核心采用反射,反射的性能比较低,但是没办法!
Controller对象无法直接new出来,只能通过反射的对象去创建,创建完之后放到哈希map当中,方便接收请求的时候去调用
控制反转的总目标:降低了团队和tomcat之间的耦合度,而不是你们团队之间的耦合度
降低耦合度是整个spring框架降低的耦合度,而不仅仅是ioc,除了ioc还有很多内部功能
AOP:面向切面;AOP