java aop入门开发,测试程序报错是为什么?
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层这些东西,其实我一直很困惑这些层要写什么内容进去,尽管在网上看了很多大神的说法,仍然不得要领,能否请你给个例程我看看呢?谢谢你了