今天遇到一个问题就是要实例化对象的一些对象的时候,里面需要用到数据库操作,所以里面有dao层的引用,但是这些要创建的对象,使用的参数都不一定一样的,所以在这些对象里我需要有一个ApplicationContext的引用来获取相应的资源对象。网上找了一下,找到了处理的方法,记录一下。为了避免多次加载或者获取ApplicationContext对象的麻烦,这个时候我们应该在项目启动的时候就把系统启动时的创建的那个ApplicationContext的实例保存起来,用一个静态变量保存,方便以后使用。做法就是继承ContextLoaderListener类,并重写contextInitialized方法,从里面取得ApplicationContext对象并保存。代码如下:
public class MyContextLoaderListener extends ContextLoaderListener {
@Override
public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServletContext();
super.contextInitialized(event);
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);
SystemApplicationContext.setContext(ctx);
}
}
然后修改web.xml文件,使用自己的applicaitonContext对象
<listener>
<listener-class>com.cdj.test.MyContextLoaderListener</listener-class>
</listener>
需要使用ApplicationContext对象的时候只要使用SystemApplicationContext.getContext();方法即可。
分享到:
相关推荐
最后,虽然使用工具类的方法可以方便地获取ApplicationContext,但需要谨慎处理单例的问题,确保线程安全,以及避免重复创建ApplicationContext实例,这可能会导致资源浪费或者产生异常。在实际项目中,还应该根据...
通过以上配置,Web 容器会自动加载 /WEB-INF/applicationContext.xml 初始化 ApplicationContext 实例,如果需要指定配置文件位置,可通过 context-param 加以指定: ```xml <param-name>contextConfigLocation ...
7. **更丰富的初始化**:ApplicationContext在启动时会初始化所有单例bean,确保在应用运行时,所有bean都已准备好。 在实际应用中,我们通常推荐使用ApplicationContext,因为它提供了更为全面的特性集,适合于...
"Spring ApplicationContext.xml配置的12个技巧演示教学" Spring ApplicationContext.xml配置是 Spring 框架中非常重要的一部分,它提供了企业级服务,并且可以通过依赖注入来获得简单而有效的测试能力。然而,在...
- 在Web应用中,推荐使用Servlet监听器来初始化`ApplicationContext`,以便在应用启动时加载,同时避免在多线程环境下可能出现的问题。 - 避免在不必要的情况下传播`ApplicationContext`,因为这可能导致不必要的...
《Spring源码分析——ApplicationContext》 在Java世界中,Spring框架是不可或缺的一部分,它以其强大的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)特性,极大地...
以上就是Spring中配置数据源的基本步骤,通过`applicationContext.xml`文件,你可以根据项目需求灵活调整数据源配置,确保数据库连接的高效和稳定。在实际开发中,你可能还需要考虑更多因素,比如数据库连接池的优化...
本实例“SpringMVCDemo”深入探讨了Spring MVC模式在实际项目中的应用,旨在帮助开发者更好地理解和掌握Spring的核心概念与技术。SpringMVCDemo是一个典型的Struts、Spring和Hibernate集成的项目,它充分展示了这三...
在Spring框架中,ApplicationContext是核心接口,它扮演着应用程序上下文的角色,负责管理和提供bean实例。标题提到的"spring为ApplicationContext提供的3种实现",是指Spring框架中用于初始化和管理bean的三种主要...
在与CXF结合时,Spring可以通过配置文件(如`applicationContext.xml`)来声明式地管理CXF服务的bean,包括服务接口、实现类、以及相关的数据绑定和异常处理类。这种方式提高了代码的可维护性和可测试性,因为所有的...
【标题】"Spring+Quartz+Maven项目实例"是一个基于Spring框架集成Quartz作业调度库的实战项目,采用Maven作为构建工具。这个实例旨在展示如何在Java应用程序中实现定时任务,支持两种运行模式,既可以直接以独立的...
Spring框架是Java开发中的核心框架,它为构建高质量的、组件化的应用提供了全面的解决方案。...通过研究和实践这个实例,开发者可以提升其在Spring框架上的技能,更好地应对实际项目开发中的挑战。
这会告诉Spring在调用此方法时启动一个新的事务,并在方法正常结束时提交事务,或者在遇到异常时回滚事务。 4. 异常处理:为了触发事务回滚,方法内通常会抛出未检查异常(继承自`RuntimeException`的异常)或显式...
5. **启动和测试**:启动RabbitMQ服务器,运行你的Spring应用,通过生产者发送消息,观察消费者是否正确接收并处理。 这个实例展示了如何在Spring应用中使用RabbitMQ进行简单的消息通信。实际上,RabbitMQ和Spring...
创建定时任务时,我们可以在任何可注入`ApplicationContext`的bean中定义一个方法,并使用`@Scheduled`注解。例如,我们可以设置一个每分钟执行一次的任务: ```java @Component public class MyScheduledTasks...
在这个"spring入门实例"中,我们将探索如何利用Spring和Spring JDBC构建一个简单的登录模块。 首先,我们需要理解Spring框架的基础概念。Spring框架的核心在于IoC(Inversion of Control,控制反转)和DI...
4. **启动Scheduler**:最后,确保在Spring容器启动时,Scheduler也能够被正确启动。这通常通过`init-method`属性实现,或者在主程序中调用`scheduler.start()`方法。 5. **编写Job类**:Job类需要实现`org.quartz....
本实例将深入探讨Spring中的注解使用,特别是如何创建一个最简单的Spring注解实例。 首先,我们需要了解Spring的核心组件——Spring容器,也称为ApplicationContext。这个容器负责管理应用程序中的bean,包括它们的...
此外,还可以配置Spring的ContextLoaderListener,该监听器会加载`applicationContext.xml`,使得Spring的IoC容器能够在Web应用启动时初始化。 4. **Spring4的新特性**: - **Java配置**:Spring4增强了对Java配置...
当Spring容器创建了一个实现了`ApplicationContextAware`的Bean时,会自动调用其`setApplicationContext`方法,传入当前的`ApplicationContext`实例。这样,我们就可以在程序中静态持有这个`ApplicationContext`,...