当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

spring配置文件bean的id值相同加载不上的问题

发表于: 2012-09-25   作者:宋小寒   来源:转载   浏览:
摘要: 在用到spring的项目开发中,通常用spring来配置一些东西,比如一些dataSource、controller和service以及dao、定时器timer或者quartz或者配置一些例如velocity模版之类的一些插件,这些类别不同,我们不可能全部写到一个springApplicationContext.xml文件中,那样我们不好维护,所以我们通常都会选择将这些不同类型的东西都配置到分开的
在用到spring的项目开发中,通常用spring来配置一些东西,比如一些dataSource、controller和service以及dao、定时器timer或者quartz或者配置一些例如velocity模版之类的一些插件,这些类别不同,我们不可能全部写到一个springApplicationContext.xml文件中,那样我们不好维护,所以我们通常都会选择将这些不同类型的东西都配置到分开的spring的文件当中,当然这些分出去的文件也得跟springApplicationContext.xml有一定的联系,在此就不再截图,相信大家都应该采用这样的
但是在我们开发过程或者维护过程中,我们发现我们还要再添加一两个配置文件,然后我们复制一个,改下名字,然后在springAppicationContext.xml中已配置,感觉就OK了,然后重启项目,起来发现有一些功能菜单的链接链接不到controller当中了,报404,检查链接,controller,模版,都没问题,但就是报404,跳不进去controller,这时发现一个规律,在某一个配置文件中配置的所有的controller都跳不进去了,这个肯定不止是巧合,于是开始排查,这个配置文件和其他spring.xml有何不同,最后终于找到原因,在添加新spring的配置文件的时候,由于是copy的这个,然后改了名字,改了里面的controller的配置,但是这个配置文件的bean的id没有注意什么作用,没有改,于是造成了项目中启动时检测到好几个重复的beanid的spring的配置文件,于是spring按照自己的机制,按顺序将这些重复的加载了,前面的就会被覆盖,于是造成了前面所述问题,当然解决办法就是把这几个bean的id设置成不同的值,重启,OK了
在spring的加载机制中是不允许有两个相同bean的id的配置文件的,所以我们以后开发一定要注意。

spring配置文件bean的id值相同加载不上的问题

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
lib下加入包 spring.jar commons-logging.jar src下添加 applicationContext.xml 1 <?xml versio
最近在项目中学习到,动态的加载配置文件,就从网上查阅资料,整理了一篇博客《Spring加载配置文件
跨域访问,估计是Silverlight 调用WCF,都会碰到的问题,我也一样 重点,跨域文件一定要放对地方,
跨域访问,估计是Silverlight 调用WCF,都会碰到的问题,我也一样 重点,跨域文件一定要放对地方,
跨域访问,估计是Silverlight 调用WCF,都会碰到的问题,我也一样 重点,跨域文件一定要放对地方,
1、之前工作都是用ofbiz,这个框架包含从视图层到持久层的所有东西,如果没有特殊需求,不需要与其
在应用Spring的工程中,使用class path的方式加载配置文件应该是最常用的做法,然而对大部分人来说
Spring中使用classpath加载配置文件浅析 在应用Spring的工程中,使用class path的方式加载配置文件
在应用 Spring 的工程中,使用 class path 的方式加载配置文件应该是最常用的做法,然而对大部分人
Spring中使用classpath加载配置文件浅析 2007年05月29日 星期二 13:52 在应用 Spring 的工程中,使
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号