java aop入门开发,测试程序报错是为什么?

如图,这是我按照网上的例程写的aop开发代码,但是运行时报错,请问是哪里错了呢?... 如图,这是我按照网上的例程写的aop开发代码,但是运行时报错,请问是哪里错了呢? 展开
 我来答
澈丶233
2019-10-24 · TA获得超过169个赞
知道小有建树答主
回答量:446
采纳率:94%
帮助的人:107万
展开全部

1、你这个本质还是spring框架之中,因此注入DAO的时候,我建议还是使用@Autowired,因为@Autowired使用的时候不需要写bean的id,使用@Resource的话未来如果你的beanId要进行修改还是挺麻烦的,而且有拼写错误的问题也存在。

2、其实最大的问题在于你使用的是main函数运行,而不是使用JUnit的@Test来进行。Spring的所有东西,都依赖于IOC容器,从上下文Context中注入bean,也就是你的注解@ContextConfiguration要做的配置。你直接使用main函数运行,IOC容器是没有启动的,因此无法注入bean:ProductDao,最终导致test()函数中pd为null,导致空指针异常。

3、解决方案:删除main函数,在test()函数上加上注解@Test,使用JUnit直接运行。


给你举个我写的Spring中使用Junit的栗子:

对了,针对你直接注入DAO来使用,是不符合SOA理念的。

较为规范的做法应该是:

mybatisXML->(映射)DAO层接口->(注入)Service实现层

Service层接口->(注入)业务层

项目目录结构建议为:


你的项目里混淆了DAO层和Service层

更多追问追答
追问
你好,关于DAO层、Service层、web层这些东西,其实我一直很困惑这些层要写什么内容进去,尽管在网上看了很多大神的说法,仍然不得要领,能否请你给个例程我看看呢?谢谢你了
追答

啊,好累

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式