1.Spring概述
(1).Spring是一个开源框架,
(2).Spring为简化企业级开发而生,使用Spring不需要繁琐的配置和复杂的代码,用Spring非常优雅和简洁.
(3).最核心的内容是IOC(控制反转)和AOP(面向切面编程)是一款容器框架.
(4).4)Spring的优良特性
① 非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API(实现接口或继承类,又叫做轻量级的)
② 依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的实现。
③ 面向切面编程:Aspect Oriented Programming——AOP
④ 容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期
⑤ 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
(5).在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库.
IOC详解
反转控制:控制指是谁来控制对象的创建,传统的引用程序对象的创建是由程序本身来控制的,使用spring后是由spring来创建的,反转:权限的转移,程序本身不去创建对象而是变为被动的接收对象.
总结:以前对象是由程序本身来创建,使用spirng后变为被动接收对象spring创建好了对象.
依赖注入
IOC的另一种表达方式,即组件以一些预先定义好的方式接收来自于容器的资源注入,相对于IOC而言,这中表述更直接.IOC描述的是一种思想,而DI是对IOC思想的具体实现.
AOP
前言:
3.2.1 动态代理的原理
代理设计模式的原理:使用一个代理将对象包装起来,然后用该代理对象取代原始对象(目标对象)。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。
例:日志打印
<bean id="printlog" class="com.dahua.log.PrintLog"></bean>
<aop:config>
<!-- 注意此ececuteion 方法,方法指明实现类的:bao.类.方法(参数,参数)-->
<aop:pointcut id="addAllMethod" expression="execution(* com.dahua.service.*.*(..))"/>
<aop:aspect id="log" ref="printlog">
<aop:before method="before" pointcut-ref="addAllMethod" />
<aop:after method="after" pointcut-ref="addAllMethod" />
</aop:aspect>
</aop:config>
AOP是一种新的方法论,是对传统OOP面向编程的补充,
(1)AOP的好处每个事物逻辑位于一个位置,代码不分散,便于维护和升级
(2)业务模块更简洁,只包含核心业务代码