关于目标类有实现接口的疑问
老师,案例中的目标类是没有实现接口的,如果有实现接口我们该怎么操作,我胡乱常试了一下,但是报错了 我应该怎么修改?
//目标类的接口 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 星