`

spring配置文件加载后applicationContext 为null

阅读更多

今天遇到一个问题:

通过ApplicationContext获取spring容器中的bean时,报ApplicationContext为null,代码如下:

public class ServiceBeanUtils implements ApplicationContextAware {

    protected static ApplicationContext staticContext;
	
	protected ServiceBeanUtils() {
		
    }

    public void setApplicationContext(ApplicationContext context) throws BeansException {
        staticContext = context;
    }

    public static Object getBean(String strBeanName) {
    	try {
    		return staticContext.getBean(strBeanName);
		} catch (Exception e) {
			e.printStackTrace();
		}
    	return null;
    }

    public static IBaseService getServiceBean(String strBeanName){
    	return (IBaseService)getBean(strBeanName);
    }

}

 查找原因:xml文件的加载顺序不正确,ServiceBeanUtils还没有加载, ApplicationContext还没有初始化,而服务启动时就有个类通过调用ApplicationContext去取bean进行初始化了

解决方案:先加载ServiceBeanUtils类,去初始化ApplicationContext,然后再加载要调用ApplicationContext的类去初始化此类

如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
			http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
			http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
			http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

	<bean class="com.hw.hwsafe.platform.util.ServiceBeanUtils" />

	
	<bean id="loginLogService" class="com.hw.hwsafe.platform.service.impl.LoginLogServiceImpl"/>
	

</beans>

 

 

分享到:
评论

相关推荐

    Spring获取ApplicationContext对象工具类的实现方法

    这种方式的实现通常只需要加载一次配置文件并创建ApplicationContext实例。通过这种方式,你可以在应用的任何地方以非常方便的方式获取到ApplicationContext实例。 在Spring 3.0及以后的版本中,还引入了...

    Spring获取webapplicationcontext,applicationcontext几种方法详解

    这种方式适用于采用 Spring 框架的独立应用程序,需要程序通过配置文件手工初始化 Spring 的情况。 方法二:通过 Spring 提供的工具类获取 ApplicationContext 对象 在 B/S 系统中,通过 ServletContext 对象可以...

    SSH框架配置说明(配置文件的管理)

    二是检查Spring配置文件中Bean的Name是否与Action类名称一致,确保Spring能够正确地创建和调度Action实例。 接下来,我们将详细讲解SSH框架中的四个核心配置文件: 1. **web.xml**:作为应用的部署描述符,它定义...

    java中获得spring中的BEAN

    对于一些复杂的项目来说,可能会涉及到多个不同的Spring配置文件,这时可以考虑封装一个自定义工具类来统一处理Bean的获取逻辑,例如题目中提到的`ApplicationContextUtil`: ```java import org.springframework....

    java文件的加载

    本文将重点探讨Java环境下不同方式下的文件加载方法,尤其关注在Spring框架下的实践与应用。 #### 二、文件加载路径及方式 在Java程序中,资源文件的加载通常涉及以下几种路径: 1. **WEB-INF/classes** - 该...

    Spring中多配置文件及引用其他bean的方式

    在Spring配置文件中,可以通过`&lt;bean&gt;`标签的`ref`属性来引用其他bean,如`&lt;bean id="bean1" class="com.example.Bean1"&gt;&lt;property name="dependency" ref="bean2"/&gt;&lt;/bean&gt;`,这里`bean1`的依赖属性`dependency`...

    Struts1+Hibernate+Spring整合

    - **添加Hibernate支持**:选择Hibernate3.1版本,添加核心库文件,并指定Spring配置文件的位置以及其他相关设置。 #### 三、框架集成与配置 ##### 1. Struts1 配置 - **配置Struts-config.xml**:配置Struts框架...

    Spring系列面试题129道(附答案解析)

    Spring配置文件是XML格式的文件,用于定义对象及其依赖关系,通过配置文件,Spring IoC容器可以管理这些对象的生命周期。 7、Spring应用程序有哪些不同组件? Spring应用程序的组件主要包括: - Beans:在Spring ...

    Spring IOC.pdf

    1. 定义Bean:在Spring配置文件中,通常使用XML格式或者注解的方式定义Bean,告诉容器需要管理哪些对象。 2. 容器初始化:Spring容器会读取配置文件并解析其中定义的Bean,然后在容器内部创建Bean的实例并管理它们。...

    Spring集成JPA配置懒加载报错解决方案

    Spring集成JPA配置懒加载报错解决方案 Spring框架集成JPA(Java Persistence API)时,经常会遇到懒加载(Lazy Loading)报错的问题,本文将详细介绍解决方案。 懒加载报错解决方案 懒加载报错解决方案主要是...

    Spring通过ApplicationContext主动获取bean的方法讲解

    在上面的配置中,我们使用了ContextLoaderListener来加载Spring容器,并指定了applicationContext.xml文件的位置。 通过使用ApplicationContext,我们可以轻松地获取到Spring容器中的bean,并且可以根据需要来获取...

    Spring mail发送邮件实例

    - **初始化上下文**:通过 `ClassPathXmlApplicationContext` 加载配置文件 `applicationContext.xml`。 - **获取 JavaMailSender 实例**:从 Spring 上下文中获取一个 `JavaMailSender` 实例,这是发送邮件的核心...

    web.xml中的listen

    #### 一、加载Spring配置文件 在Web应用程序开发中,特别是在使用Spring框架的情况下,配置文件的加载是非常重要的一个环节。`web.xml`是Servlet容器用来初始化Web应用的一个核心配置文件,它允许开发者指定一系列...

    spring5.0.2中文官网文档

    IoC容器提供了多种方式来配置依赖关系,包括XML配置文件、注解以及Java配置类等。 在Spring 5.0.2中文官网文档中,详细介绍了IoC容器的多种概念,如Bean的定义、作用域以及生命周期等。Bean是Spring IoC容器管理的...

    spring整合ehCache

    Spring整合EhCache是将...在Spring中,我们还需要创建一个Spring配置文件(如`applicationContext.xml`),并配置EhCache的Bean。这包括定义`CacheManager`,加载`ehcache.xml`配置,并声明要使用的缓存: ```xml ...

    SPRING面试宝典

    Spring配置文件是用于定义Spring容器中Bean的配置元数据的文件,通常使用XML或Java配置。通过这些文件,可以定义Bean的生命周期、依赖关系等。 **1.13 什么是Spring IoC容器?** IoC(Inversion of Control,控制...

    Spring学习笔记

    Spring提供了几种ApplicationContext的实现,如ClassPathXmlApplicationContext用于读取类路径下的配置文件,FileSystemXmlApplicationContext用于读取文件系统中的配置文件,而XmlWebApplicationContext则适用于Web...

    Spring从入门到精通

    - **编写测试程序TestHelloWorld.java:** 使用Spring上下文加载配置文件,并获取Bean对象进行测试。 - **运行测试程序并查看输出结果:** 确认程序正确运行并输出预期结果。 - **改写第一个Spring例子实现中英文...

    xfire1.26 spring2.5 整合

    4. 启动XFire服务:在Spring应用启动时,通过Spring的ApplicationContext加载并启动XFire服务。 在标签中,“源码”意味着我们可能会涉及查看和理解XFire和Spring的源代码,这对于调试和定制功能是很有帮助的。...

    java定时任务代码-spring管理.txt

    4. **Spring配置文件**:用于定义Bean及其依赖关系。 ```xml ``` ### 定时任务的实现 在Spring环境中实现定时任务主要依靠`@Scheduled`注解。下面是一个简单的示例,展示如何在一个Bean中定义一个定时...

Global site tag (gtag.js) - Google Analytics