1.spring aop操作,使用Aspectj实现
(1)Aspectj不会spring的一部分,是和spring一起使用完成aop操作
(2)Spring2.0以后,新增了对Aspectj的支持
2.使用Aspectj实现aop操作的两种方式
(1)基于aspectj的xml配置
-- jar包
下载地址:
-- 创建核心配置文件,引入aop约束
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
-- 表达式定义切入点
详细了解访问:http://blog.csdn.net/m0_37983376/article/details/73740390
-- 核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="userDao" class="com.sq.service.UserDao"></bean>
<bean id="userService" class="com.sq.service.UserService"></bean>
<!-- 配置aop操作 -->
<aop:config>
<!-- 配置切入点 -->
<aop:pointcut expression="execution(* com.sq.service.UserDao.*(..))" id="pointcut1"/>
<!-- 配置切面
把增强用到方法上面
-->
<aop:aspect ref="userService">
<!-- 配置增强类型
增强类里面使用哪个方法作为前置
-->
<aop:before method="add" pointcut-ref="pointcut1"/>
</aop:aspect>
</aop:config>
</beans>
(2)基于aspectj的注解方式
-- 第一步:通过spring配置文件创建对象
-- 第二步:在spring配置文件中开启aop操作
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
-- 第三步:配置增强类
package com.sq.user;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
/**
*@author sq
*
*/
@Aspect
public class Method {
@Before(value="execution(* com.sq.user.*.*(..))")
public void sing(){
System.out.println("sing...");
}
}