`

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

阅读更多
在用到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 XML配置入门

    Spring容器通过XML配置文件或注解来定义Bean及其相互关系。 3. **XML配置文件**: "spring-beans"是Spring中用于配置Bean的XML文件。该文件包含了一系列的<bean>元素,每个元素表示一个Java对象的定义,包括类名、...

    spring的bean加载顺序样例项目

    - 当Spring容器启动时,它首先读取配置文件,解析Bean的定义,并创建一个BeanDefinition对象,该对象包含了Bean的所有信息,如类名、属性、依赖等。 - 如果有`@Component`注解的类,Spring会通过组件扫描找到并...

    spring 配置文件详解

    Spring 配置文件是一个或多个标准的 XML 文档,applicationContext.xml 是 Spring 的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。 在 Spring 配置文件中,主要包含了以下...

    Spring3.0 配置文件中加载Properties文件的小例子

    接下来,我们将在Spring的配置文件(如`applicationContext.xml`)中声明一个`PropertyPlaceholderConfigurer` bean,它负责加载并解析Properties文件。配置如下: ```xml <bean id="propertyConfigurer" class=...

    spring配置文件模板

    《Spring配置文件模板详解》 在Java开发领域,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)能力,成为了企业级应用开发的重要选择。而...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    解决这个问题的关键在于深入理解Spring的Bean生命周期和配置机制,检查配置文件、注解使用、依赖关系等,确保每个Bean的定义都是唯一的,且作用域设置正确。同时,对源码进行调试也是一个有效的排查手段,可以追踪到...

    spring配置文件详细介绍

    在Spring配置文件中,最重要的元素是`<bean>`。`<bean>`元素定义了一个Spring管理的对象,也称为bean。它包含几个关键属性,如`id`(唯一标识符)、`class`(类路径,用于实例化对象)和`name`(可选的别名)。例如...

    spring IOC反射装载bean

    在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...

    Spring配置文件spring-context.zip

    "Spring配置文件spring-context.zip"包含了Spring框架中的上下文配置,这是Spring管理对象及服务的核心。 `applicationContext.xml`是Spring应用上下文的主配置文件,它定义了bean的声明、bean之间的依赖关系以及...

    SPRING:bean配置properties

    通过上述配置,我们可以看到`PropertyPlaceholderConfigurer`不仅提供了强大的配置文件管理能力,还具备高度的灵活性和扩展性,是Spring框架中不可或缺的一部分。合理运用这一机制,能够极大地提升代码的可维护性和...

    spring依赖注入bean

    在 Java 应用中使用 Spring,我们需要创建一个 Spring 上下文(ApplicationContext)来加载 Bean 的定义。这个上下文将负责创建和管理 Bean,以及执行依赖注入。通常,我们可以使用 `ClassPathXmlApplicationContext...

    Spring動態加載Bean

    通常,Spring容器会在应用启动时扫描配置文件,创建并初始化所有定义的Bean。然而,通过动态加载,我们可以避免不必要的初始化,直到真正需要某个Bean时才去创建它。 动态加载Bean主要有以下几种实现方式: 1. **...

    Spring的Bean配置说明

    - **功能概述**:`<beans>`是Spring配置文件的根元素,用来包含一个或多个`<bean>`元素,用于定义Spring容器管理的各种Bean。 #### 二、`<bean>`元素详解 - **基础配置**: - **`class`属性**:表示JavaBean的全...

    大型项目的struts,spring配置文件

    这个配置文件用于告诉Struts如何使用Spring管理Action,通常通过`<struts:action>`标签指定Action的类,然后通过Spring的id引用该类。 在大型项目中,为了提高可维护性和可扩展性,配置文件通常会被分解成多个部分...

    Spring 3.1配置文件示例(备忘)

    Spring 3.1 配置文件是 Spring 框架的核心组成部分,用于定义应用程序的组件、依赖关系和服务。这篇备忘录将深入探讨 `applicationContext.xml` 文件在 Spring 3.1 中的角色、结构和常见配置元素。我们将讨论如何...

    Spring 配置文件 和详细笔记

    Spring配置文件是Spring框架的核心组成部分,用于定义bean的创建、装配以及它们之间的关系。在本文中,我们将深入探讨Spring配置文件的相关知识点,以及如何有效地使用它们。 1. **XML配置文件** - **基本结构**:...

    spring创建bean简单示例

    在Java代码中,使用`ClassPathXmlApplicationContext`加载XML配置文件,并通过Bean的ID获取并使用Bean实例。 ```java ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); MyService ...

    Spring4 jar包和Spring配置文件

    Spring框架是Java开发中最常用的轻量级框架之一,它的核心在于IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented ...深入学习Spring4的jar包和配置文件,将使你更好地驾驭Java开发环境,提高软件工程能力。

    spring mvc的配置文件详解

    ### Spring MVC 的配置文件详解 #### 一、配置分发器 (DispatcherServlet) Spring MVC 的核心组件之一就是 DispatcherServlet,它作为整个框架的入口,负责处理所有进入 Spring Web 应用程序的请求。为了使 ...

Global site tag (gtag.js) - Google Analytics