1.注解配置業(yè)務(wù)類
使用@Component("s") 注解ProductService 類
package com.jd.service;
import org.springframework.stereotype.Component;
@Component("s")
public class ProductService {
public void doSomeService(){
System.out.println("doSomeService");
}
}
2.注解配置切面
@Aspect 注解表示這是一個切面
@Component 表示這是一個bean,由Spring進行管理
@Around(value = "execution(* com.jd.service.ProductService.*(..))") 表示對com.jd.service.ProductService 這個類中的所有方法進行切面操作
package com.jd.aspect;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LoggerAspect {
@Around(value = "execution(* com.jd.service.ProductService.*(..))")
public Object log(ProceedingJoinPoint joinPoint) throws Throwable{
System.out.println("start log:" + joinPoint.getSignature().getName());
Object object = joinPoint.proceed();
System.out.println("end log:" + joinPoint.getSignature().getName());
return object;
}
}
3.spring-config.xml
去掉原有信息,添加如下3行
掃描包com.jd.aspect和com.jd.service梨与,定位業(yè)務(wù)類和切面類
<context:component-scan base-package="com.jd.aspect"/>
<context:component-scan base-package="com.jd.service"/>
找到被注解了的切面類萌京,進行切面配置
<aop:aspectj-autoproxy/>
<?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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<context:component-scan base-package="com.jd.aspect"/>
<context:component-scan base-package="com.jd.service"/>
<aop:aspectj-autoproxy/>
</beans>