增强类型扩展
异常抛出增强
异常抛出增强是指当目标对象方法抛出异常时进行织入操作的一种增强方式。通常,异常抛出增强用来为项目提供统一的异常处理功能,具有可灵活插拔的功能。
语法
<aop:config> <!--异常抛出增强--> <aop:aspect ref="增强方法所在的Bean"> <aop:after-throwing method="增强处理方法" pointcut-ref="切入点id" throwing="e"/> </aop:aspect> </aop:config>
示例:
创建一个类作为切入点,并写上异常
定义异常处理类,并在类中创建处理异常的方法
根据语法编写配置文件,要先引入aop命名空间
编写测试类完成测试
最终增强
最终增强是指无论目标对象的方法正常运行还是抛出异常,该增强处理都会被执行的一种增强方式,通常用于释放资源等操作,具有可灵活插拔的特点。
语法:
<aop:config> <!--最终增强--> <aop:aspect ref="增强方法所在的Bean"> <aop:after method="增强处理方法" pointcut-ref="切入点id"/> </aop:aspect> </aop:config>
示例:
编写一个最终增强类
根据语法编写配置文件
打开刚刚所写的测试类进行测试
无论目标对象的方法是否存在异常,最终增强都会执行。
环绕增强
环绕增强是指在目标对象方法前后都可以进行织入的一种增强处理方式。在环绕增强处理中,可以获取或修改目标方法的参数,返回值,可以对他进行异常处理,甚至可以决定目标方法是否被执行。
语法:
<aop:config> <!--环绕增强--> <aop:aspect ref="增强方法所在的Bean"> <aop:around method="增强处理方法" pointcut-ref="切入点id"/> </aop:aspect> </aop:config>
示例:
编写环绕增强处理类
根据语法编写配置文件
打开测试类查看结果
正常运行时:
当目标方法出现异常时:
当环绕增强不执行目标方法时:
可以获取目标对象的信息:
从执行结果中可以看出,使用环绕增强的方式可以获取目标对象方法的参数,返回值等信息,可以控制目标方法调用。环绕增强是功能最强大的增强处理,Spring框架中的目标方法全部由他控制。
依赖注入方式扩展
构造注入
构造注入是指Spring框架通过构造方法为属性赋值的一种注入方式。构造注入可以在对象初始化时为属性赋值,具有良好的时效性。
语法:
<bean id="唯一标识" class="类的全路径"> <!--构造注入--> <constructor-arg name="参数名称" type="参数类型" value=""/> </bean>
示例:
创建实体类,添加属性并进行封装,添加构造方法
根据语法编写配置文件
创建测试类进行测试
不同类型注入
1.空字符串和null
2.基本数据类型,字符串
3.集合和数组
使用注解实现SpringIOC
创建目标对象
创建注解类
创建配置文件中扫描注解
创建测试类
环绕注解