aop全自动编程

目标:第三大步实现不需要手动配置。
只需要把通知和切入点关联形成切面就可以了。
从spring容器获得目标类,配置aop将自动生成代理。





切入点表达式部分讲解:


aop全自动编程_第1张图片
image.png

开发流程
第一步:创建目标类

目标类为 AutoServiceImpl 实现 AutoService
@Service("autoService")
public class AutoServiceImpl implements AutoService {

@Qualifier("autoDao")
@Autowired
private AutoDaoImpl autoDao;
@Override
public void addAuto() {
    autoDao.addAuto();
}

}

@Repository("AnnotationDaoImpl")
public class AnnotationDaoImpl implements AnnotationDao {
@Override
public void addAnnotation() {
Log.info("我是AnnotationDaoImpl 里面的方法");
}

@Override
public String returnAnnotation() {
    return  "我是 我是AnnotationDaoImpl 里面返回数据的一个方法";
}

}

第二步:创建通知类

@Component("circleLog")
public class LogCircleAdvice implements MethodInterceptor {
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
Log.info("环绕前");
Object proceed = invocation.proceed();
Log.info("环绕后" );
return proceed;
}
}

第三步:AOP全自动编程


    
    

第四步:测试

@Test
public void testAutoService(){
    ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
    AutoService autoService = (AutoService) classPathXmlApplicationContext.getBean("autoService");
    autoService.addAuto();
}

输出结果如下所示:


image.png

可以根据修改如下引用进行修改 通知类 : 就不一一列举了


aop全自动编程_第2张图片
image.png

你可能感兴趣的:(aop全自动编程)