关于目标类有实现接口的疑问
1 2 | 老师,案例中的目标类是没有实现接口的,如果有实现接口我们该怎么操作,我胡乱常试了一下,但是报错了 我应该怎么修改? |
1 2 3 4 5 6 7 8 9 10 11 12 | // 目标类的接口 public interface Product { public void save(); public void update(); public void delete(); public void findOne(); public void findAll(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // 目标类 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( "查询全部商品..." ); } } |
1 2 3 4 5 6 7 8 9 10 11 | // 切面类 @Aspect public class MyAscpectAnno { // 通知 @Before(value = "execution(* com.zhou.aspectJ.demo1.ProductDao.*(..))" ) // 调用目标类的任意方法都会使用前置增强 public void before(){ System.out.println( "前置通知===========" ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @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(); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?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
1 2 3 4 5 6 7 | 因为案例中把ProductDao当作目标类,我在做这个测试之前为了方便把就没去修改,然后创建了 一个名Product的目标类接口,这就导致后面出现了很多问题。我已经重写修改了类名,还把我开始 在xml中配置的接口类给删掉了,只留了一个目标类的配置,我一开始以为如果目标类实现了接口 的话也要在xml中配置一下接口,之后我又将目标类注入到测试类的接口的实例对象中。 经过测试就好了。我写着写着突然发现: <bean id = "productDao" class= "com.zhou.aspectJ.demo1.ProductDaoImpl" /> 这种语句点陌生了,就知道要这么配置,它到底表达什么我有点忘记了。老师你能跟我说一下吗 |
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧