最近在简化项目配置文件时碰到的坑。
类CdnParamMPImpl里有方法如下
public void reload() throws Exception {
try {
cdnParamCodeList = cdnParamCodeBO.getCdnParamCodes();
this.setReload(false);
} catch (Exception e) {
e.printStackTrace();
throw new MPException(e, this.getClass());
}
}
reload在spring初始化另一个bean(GetOrderImpl)时会被引用到,每次都报cdnParamCodeBO 为空,简化配置项后确认cdnParamCodeBO有注入。
增加日志发现类加载顺序为
CdnParamMPImpl create
GetOrderImpl create
reload
cdnParamCodeBO create
CdnParamMPImpl set cdnParamCodeBO
修改配置文件顺序,将加载GetOrderImpl bean的配置放在另两个后面问题解决。
spring正常配置不需要考虑bean的加载顺序,但这里一个bean初始化引用到另一个bean内部方法,就需要考虑加载顺序。
分享到:
相关推荐
在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...
- 配置文件的加载顺序为:`application.properties`/`application.yml` > `{profile}-application.properties`/`{profile}-application.yml`。 4. **使用@ConfigurationProperties绑定配置** - Spring Boot提供了...
Spring配置文件是Spring框架的核心组成部分,用于定义bean的创建、装配以及它们之间的关系。在本文中,我们将深入探讨Spring配置文件的相关知识点,以及如何有效地使用它们。 1. **XML配置文件** - **基本结构**:...
### Spring配置文件详解 #### 一、Spring框架与配置文件的重要性 Spring框架是Java平台上的一个开源框架,它提供了一种轻量级的方式来管理和组织Java应用程序中的组件。Spring框架的核心特性之一是依赖注入...
### Spring之AOP配置文件详解 #### 一、前言 在Java开发中,Spring框架因其强大的功能和灵活的配置而被广泛应用于企业级应用的开发。其中,面向切面编程(Aspect Oriented Programming,简称AOP)是Spring框架的...
### Spring MVC 的配置文件详解 #### 一、配置分发器 (DispatcherServlet) Spring MVC 的核心组件之一就是 DispatcherServlet,它作为整个框架的入口,负责处理所有进入 Spring Web 应用程序的请求。为了使 ...
例如,假设我们有 2 个 bean A 和 B,B 加载的文件依赖 A 中加载的全局配置文件中的路径,所以需要 A 先于 B 初始化。此外,A 中的配置改变后也需要触发 B 的重新加载逻辑,所以 A 和 B 需要互相注入。 方案一:...
在本文中,我们将深入探讨Spring Security 3的配置文件,以及如何理解和使用这些配置来增强应用的安全性。 首先,Spring Security的配置通常位于一个或多个XML文件中,这些文件通过`<beans>`标签定义了安全相关的...
在Spring和Mybatis的XML配置文件中,DTD定义了可以使用的元素、属性以及它们的顺序和限制。这些约束确保了配置文件的正确性,避免了因语法错误导致的解析问题。 Spring的XML配置文件通常包含以下元素的定义: 1. `...
Spring Boot 2.4 中的配置文件加载机制发生了重大变化,这些变化将影响到应用程序的配置文件加载方式。下面是相关知识点的详细介绍: 一、为什么要进行这些更改 随着最新版本 Spring Boot 的发布,Spring 一直在...
Spring支持多种配置方式,包括XML、Java配置类(@Configuration)、注解(@Component、@Service等)以及通过@ConfigurationProperties处理YAML或Properties文件。在实验小例子中,我们可能看到这几种配置方式的组合...
首先,Spring容器在启动时会读取配置文件(如XML或Java配置类),根据配置信息创建Bean的定义。Bean的定义包含了Bean的类、属性、依赖关系等信息。 ### Bean的实例化 1. **构造器注入**:当Spring创建Bean时,如果...
首先,我们要知道Spring IoC容器是通过XML配置文件、注解或Java配置类来管理Bean的生命周期。Bean的实例化顺序取决于以下因素: 1. **定义顺序**:在XML配置中,如果Bean的定义顺序明确,那么按照它们在文件中的...
**Spring.NET AOP 通过配置文件配置** Spring.NET 是一个开源的 .NET 框架,它提供了依赖注入(DI)和面向切面编程(AOP)的能力。在本篇内容中,我们将深入探讨如何使用配置文件来设置 Spring.NET 的 AOP 功能。 ...
上述代码中,通过`ContextLoaderListener`加载了一个名为`applicationContext.xml`的配置文件,该文件包含了所有Spring Bean的定义。这意味着所有Bean会在应用程序启动时被初始化。 #### 加载顺序总结 根据上述...
Spring 和 SpringMVC 的配置加载顺序是理解这两个框架协同工作的重要方面。首先,DispatcherServlet 是 SpringMVC 的核心组件,它扮演着请求分发者的角色,确保请求被正确地路由到相应的处理器。DispatcherServlet ...
本demo springCloud版本为1.5.9,...本项目使用本地分布式配置(非git远程配置),启动顺序为服务注册中心(discovery)、配置中心(confugure)、微服务(micro-server),配置文件ip需修改为你自己的ip或localhost。
- 当Spring容器启动时,它首先读取配置文件,解析Bean的定义,并创建一个BeanDefinition对象,该对象包含了Bean的所有信息,如类名、属性、依赖等。 - 如果有`@Component`注解的类,Spring会通过组件扫描找到并...
配置文件加载顺序 配置文件的加载遵循以下优先级(从高到低): 1. 命令行参数(`--key=value`) 2. `spring.config.location`指定的文件 3. `@SpringBootTest`注解中的`value`属性 4. 环境变量 5. 系统属性(`...