前言:前面我们了解了Spring的IoC和Aop,本节我们就一起来深入学习一下Spring中的Ioc和Aop的实现方式吧。
1、使用注解依赖注入
2、注入不同数据类型
3、Aop增强类型及特点
4、使用注解实现增强
一、使用注解依赖注入
1、在介绍注解依赖注入前,我们可以了解另一种注入方法——p命名空间注入
使用属性而不是子元素的形式配置Bean的属性
配置文件中使用p命名空间时,需要先添加p命名空间的声明:
xmlns:p="http://www.springframework.org/schema/p"
但是在实际开发中,使用注解更能提高代码的可读性,下面是IoC常用注解
@Component:实现Bean组件的定义
@Repository:用于标注DAO类
@Service:用于标注业务类
@Controller:用于标注控制器类
@Autowired:自动专配
@Resource:自动装配
对比:@Autowired是Spring提供的注解
@Resource是Java提供的 在不指定任何参数且不配合其他注解时
@Autowired注解会优先按Bean的类型进行装配
@Resource注解则是优先按Bean的名称进行装配
说到@Autowired 就不得不提@Qualifier,因为@Autowired 是按照类型进行装配的,所以出现下面错误时会抛出BeanCreationException异常。
①可能存在多个UserDao实例
②可能不存在UserDao实例
第一种情况时使用@Qualifier注入名称为Dao或Mapper的bean
第二种情况时使用@Autowired(required = false)
2、注入不同数据类型
二、 Aop增强类型及特点
在Spring框架中,有以下几种增强类型:
-
前置增强(Before Advice):在目标方法执行之前执行的增强操作。可以在目标方法执行前进行一些预处理或校验操作,例如日志记录、权限验证等。
-
后置增强(After Advice):在目标方法执行之后执行的增强操作。可以在目标方法执行后进行一些清理或收尾操作,例如释放资源、记录返回结果等。
-
环绕增强(Around Advice):在目标方法执行前后都执行的增强操作。可以完全控制目标方法的执行过程,可以在目标方法执行前后进行任意的操作,并决定是否继续执行目标方法。
-
异常增强(After Throwing Advice):在目标方法抛出异常时执行的增强操作。可以捕获目标方法抛出的异常,并进行相应的处理,例如记录异常信息、执行回滚操作等。
-
返回值增强(After Returning Advice):在目标方法成功返回结果后执行的增强操作。可以获取目标方法的返回结果,并进行一些后续的处理,例如日志记录、数据处理等。
2、使用注解实现增强
@AfterThrowing
:异常通知注解,用于定义在目标方法抛出异常时执行的增强操作。-
@Before
:前置通知注解,用于定义在目标方法执行之前执行的增强操作。 -
@AfterReturning
:返回通知注解,用于定义在目标方法成功返回结果后执行的增强操作。 -
@Around
:环绕通知注解,用于定义在目标方法执行前后都执行的增强操作。可以完全控制目标方法的执行过程。 -
@After
:后置通知注解,用于定义在目标方法执行之后执行的增强操作。 -
@Aspect
:切面注解,用于标识一个类为切面类。切面类中定义了切点和通知等。 -
@Pointcut
:切点注解,用于定义一个切点表达式,指定需要被增强的连接点(方法)。切点表达式可以使用AspectJ的语法来指定具体的匹配规则。