跟着慕课网的免费课Spring入门篇打算加强自己对于spring的理解,结果第一步在spring配置bean的xml就遇到了问题,感觉名字什么的都是对的,但是就是一直报no bean named 'xxx' available这个错,也不知道为什么。这个错误的意思是没有叫xxx这个名字的bean可获得。根据这个提示我思考了一下可能的问题。
1.xml这个bean的id的命名和我应用时写的要获取的名字不一样。(排除)
2.xml这个bean的class路径不对。(排除)
3.实际上这个xml没有获取到。(是的)
最后发现的确是这个xml没有获取到,其实控制台没有显示Loading XML bean definitions from URL 就应该能看出来,但是还是忽略了这个信息找了很久的原因。原因找到了但是为什么没有找到这个xml呢。我用的是classpath*:spring-dao.xml去获取的spring-dao.xml这个文件,应该是去bin目录下的根目录找的,但是bin的根目录下不存在这个文件,可能是我文件的层级设置出了问题,文件夹和package的设置出了点问题,导致spring-dao.xml编译到bin的时候不是在根目录而是在里面几层的文件夹里。
https://blog.csdn.net/jixinhuluwa/article/details/51954953
这个博客解释了一下eclipse 下面的folder,source folder,package的区别与作用,“所以就设计出来一个特别的文件夹叫source folder,放在他下面的java文件就能被编译,而且,可以通过一定的配置将编译文件放在你配置的文件夹下面”,这个说明了从哪一层级的编译到bin或者classes文件中去。也就是要将哪一层里的东西开始编译到目录里去,就把哪一层的文件夹设为source folder,我暂时是这么理解的。