为了账号安全,请及时绑定邮箱和手机立即绑定

关于那个super("classpath*:spring-ioc.xml");不懂

不管用什么方法,我怎么修改,都不管用,就在那个UnitTestBase那个类里面,new ClasspathXmlApplicationContext(springXmlPath.split("[,//s]+");这个位置,我用老师的那个代码始终无法得到bean!!!怎么办

正在回答

7 回答

classpath*:spring-*.xml,

这是加载所有的匹配的文件,

就是src一级目录下,所有spring-开头的xml文件。

0 回复 有任何疑惑可以回复我~
#1

人总有老去的一天 提问者

如果是这样,那么在UnitTestBase里面的那个new ClasspathXmlApplicationContext(springXmlPath.split("[,//s]+"));这个springXmlPath就包含了所有的spring*.xml的配置文件,那么这个applicationCOntext到底加载的是哪一spring容器呢?还是都加载?split()方法分隔了所有的路径成为一个数组,那么ClasspathXmlApplicationContext有加载数组的方法吗?能加载所有spring容器吗?
2016-10-15 回复 有任何疑惑可以回复我~
#2

人总有老去的一天 提问者

而且如果它启动了所有容器,那么我们使用的applicationContext是哪一个容器?还是所有的容器?之前有用过ApplicationContextAware接口查过,但是也是一样的问题,没有发现这个bean对象,所以,这个加载的spring-*.xml或者具体的xml文件spring-injection.xml似乎是没有被加载到ApplicationContext里面的,既然扫描了所有路径,那就不可能加载不了,就不可能找不到bean,这就奇怪了。
2016-10-15 回复 有任何疑惑可以回复我~
#3

qq_昼绽_0 回复 人总有老去的一天 提问者

启动时,输出信息可以看到加载的.xml
2016-10-15 回复 有任何疑惑可以回复我~

楼上对的,我也遇到这个问题,已经解决了,必须是直接在src目录下

0 回复 有任何疑惑可以回复我~

因为你的xml文件不在根目录下,这里的根指的是是classpath下,跟com是平级的

0 回复 有任何疑惑可以回复我~

666

0 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//580209d30001ee8109030044.jpg


发下输出信息


1 回复 有任何疑惑可以回复我~
#1

人总有老去的一天 提问者

我明白了,谢谢。这点英文我还是看得懂得。
2016-10-17 回复 有任何疑惑可以回复我~

发下输出信息

0 回复 有任何疑惑可以回复我~

这是基类中,应用上下文,加载配置文件。

发下报错信息

0 回复 有任何疑惑可以回复我~
#1

人总有老去的一天 提问者

那个报错信息不好发,我非要把那个UnitTestBase里面的改成context=new ClassPathXmlApplicationContext("classpath:com/imooc/FrameWork/spring/example1/resurces/"+springXmlName);这种具体的路径才能正确找到bean对象,如果是像老师那样,根本就找不到bean,虽然spring容器确实正确启动了,但是我不知道他到底启动的是从哪个具体的xml里面启动的。其实就是classpath*:spring-*.xml这个写法我不知道它从哪里找到配置文件。
2016-10-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于那个super("classpath*:spring-ioc.xml");不懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信