关于目标类有实现接口的疑问
老师,案例中的目标类是没有实现接口的,如果有实现接口我们该怎么操作,我胡乱常试了一下,但是报错了 我应该怎么修改?
//目标类的接口
public interface Product {
public void save();
public void update();
public void delete();
public void findOne();
public void findAll();
}//目标类
public class ProductDao implements Product {
public void save(){
System.out.println("保存商品...");
}
public void update(){
System.out.println("修改商品...");
}
public void delete(){
System.out.println("删除商品...");
}
public void findOne(){
System.out.println("查询单个商品...");
}
public void findAll(){
System.out.println("查询全部商品...");
}
}//切面类
@Aspect
public class MyAscpectAnno {
//通知
@Before(value = "execution(* com.zhou.aspectJ.demo1.ProductDao.*(..))")//调用目标类的任意方法都会使用前置增强
public void before(){
System.out.println("前置通知===========");
}
}@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringDemo1 {
@Resource(name="productDao")
private ProductDao productDao;
@Test
public void test(){
productDao.save();
productDao.delete();
productDao.findOne();
productDao.update();
productDao.findAll();
}
}<?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"> <!-- 开启AspectJ自动代理--> <aop:aspectj-autoproxy /> <!--配置目标类--> <bean id="productDao" class="com.zhou.aspectJ.demo1.ProductDao"/> <!--配置目标类接口--> <bean id="product" class="com.zhou.aspectJ.demo1.Product" abstract="true"/> <!--配置切面类: 不需要在其他地方引用时不需要写id--> <bean class="com.zhou.aspectJ.demo1.MyAscpectAnno"/> </beans>
20
收起
正在回答
2回答
同学你好,1、建议同学将自己具体的报错信息贴出,便于老师根据报错定位问题。
2、测试同学的代码,并没有按照正常的语法规范命名,老师修改对应的接口为dao,实现类为DaoImpl后,例如:


可以正常的运行。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
jia_蛙
2020-03-25 15:51:48
因为案例中把ProductDao当作目标类,我在做这个测试之前为了方便把就没去修改,然后创建了 一个名Product的目标类接口,这就导致后面出现了很多问题。我已经重写修改了类名,还把我开始 在xml中配置的接口类给删掉了,只留了一个目标类的配置,我一开始以为如果目标类实现了接口 的话也要在xml中配置一下接口,之后我又将目标类注入到测试类的接口的实例对象中。 经过测试就好了。我写着写着突然发现: <bean id="productDao" class="com.zhou.aspectJ.demo1.ProductDaoImpl"/> 这种语句点陌生了,就知道要这么配置,它到底表达什么我有点忘记了。老师你能跟我说一下吗
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星