今天遇到一个问题:
通过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>
相关推荐
这种方式的实现通常只需要加载一次配置文件并创建ApplicationContext实例。通过这种方式,你可以在应用的任何地方以非常方便的方式获取到ApplicationContext实例。 在Spring 3.0及以后的版本中,还引入了...
这种方式适用于采用 Spring 框架的独立应用程序,需要程序通过配置文件手工初始化 Spring 的情况。 方法二:通过 Spring 提供的工具类获取 ApplicationContext 对象 在 B/S 系统中,通过 ServletContext 对象可以...
二是检查Spring配置文件中Bean的Name是否与Action类名称一致,确保Spring能够正确地创建和调度Action实例。 接下来,我们将详细讲解SSH框架中的四个核心配置文件: 1. **web.xml**:作为应用的部署描述符,它定义...
对于一些复杂的项目来说,可能会涉及到多个不同的Spring配置文件,这时可以考虑封装一个自定义工具类来统一处理Bean的获取逻辑,例如题目中提到的`ApplicationContextUtil`: ```java import org.springframework....
本文将重点探讨Java环境下不同方式下的文件加载方法,尤其关注在Spring框架下的实践与应用。 #### 二、文件加载路径及方式 在Java程序中,资源文件的加载通常涉及以下几种路径: 1. **WEB-INF/classes** - 该...
在Spring配置文件中,可以通过`<bean>`标签的`ref`属性来引用其他bean,如`<bean id="bean1" class="com.example.Bean1"><property name="dependency" ref="bean2"/></bean>`,这里`bean1`的依赖属性`dependency`...
- **添加Hibernate支持**:选择Hibernate3.1版本,添加核心库文件,并指定Spring配置文件的位置以及其他相关设置。 #### 三、框架集成与配置 ##### 1. Struts1 配置 - **配置Struts-config.xml**:配置Struts框架...
Spring配置文件是XML格式的文件,用于定义对象及其依赖关系,通过配置文件,Spring IoC容器可以管理这些对象的生命周期。 7、Spring应用程序有哪些不同组件? Spring应用程序的组件主要包括: - Beans:在Spring ...
1. 定义Bean:在Spring配置文件中,通常使用XML格式或者注解的方式定义Bean,告诉容器需要管理哪些对象。 2. 容器初始化:Spring容器会读取配置文件并解析其中定义的Bean,然后在容器内部创建Bean的实例并管理它们。...
Spring集成JPA配置懒加载报错解决方案 Spring框架集成JPA(Java Persistence API)时,经常会遇到懒加载(Lazy Loading)报错的问题,本文将详细介绍解决方案。 懒加载报错解决方案 懒加载报错解决方案主要是...
在上面的配置中,我们使用了ContextLoaderListener来加载Spring容器,并指定了applicationContext.xml文件的位置。 通过使用ApplicationContext,我们可以轻松地获取到Spring容器中的bean,并且可以根据需要来获取...
- **初始化上下文**:通过 `ClassPathXmlApplicationContext` 加载配置文件 `applicationContext.xml`。 - **获取 JavaMailSender 实例**:从 Spring 上下文中获取一个 `JavaMailSender` 实例,这是发送邮件的核心...
#### 一、加载Spring配置文件 在Web应用程序开发中,特别是在使用Spring框架的情况下,配置文件的加载是非常重要的一个环节。`web.xml`是Servlet容器用来初始化Web应用的一个核心配置文件,它允许开发者指定一系列...
IoC容器提供了多种方式来配置依赖关系,包括XML配置文件、注解以及Java配置类等。 在Spring 5.0.2中文官网文档中,详细介绍了IoC容器的多种概念,如Bean的定义、作用域以及生命周期等。Bean是Spring IoC容器管理的...
Spring整合EhCache是将...在Spring中,我们还需要创建一个Spring配置文件(如`applicationContext.xml`),并配置EhCache的Bean。这包括定义`CacheManager`,加载`ehcache.xml`配置,并声明要使用的缓存: ```xml ...
Spring配置文件是用于定义Spring容器中Bean的配置元数据的文件,通常使用XML或Java配置。通过这些文件,可以定义Bean的生命周期、依赖关系等。 **1.13 什么是Spring IoC容器?** IoC(Inversion of Control,控制...
Spring提供了几种ApplicationContext的实现,如ClassPathXmlApplicationContext用于读取类路径下的配置文件,FileSystemXmlApplicationContext用于读取文件系统中的配置文件,而XmlWebApplicationContext则适用于Web...
- **编写测试程序TestHelloWorld.java:** 使用Spring上下文加载配置文件,并获取Bean对象进行测试。 - **运行测试程序并查看输出结果:** 确认程序正确运行并输出预期结果。 - **改写第一个Spring例子实现中英文...
4. 启动XFire服务:在Spring应用启动时,通过Spring的ApplicationContext加载并启动XFire服务。 在标签中,“源码”意味着我们可能会涉及查看和理解XFire和Spring的源代码,这对于调试和定制功能是很有帮助的。...
4. **Spring配置文件**:用于定义Bean及其依赖关系。 ```xml ``` ### 定时任务的实现 在Spring环境中实现定时任务主要依靠`@Scheduled`注解。下面是一个简单的示例,展示如何在一个Bean中定义一个定时...