找了好几个月,终于找到了问题的所在。
因为以前在后台的java类中重复加载了spring配置文件,导致topic的消费者被重复增加,所以一个消息被消费了两次。
package com.work.core.spring;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* 通过静态代码来获取spring的context,第一次调用的使用运行。
*
* @author wangmingjie
*
*/
public class MyBeanUtil {
//因为下面的代码导致了activemqtopic订阅方式,每次都被消费了两次。
//在非web环境中获取bean的方法。
// private static ApplicationContext context = new ClassPathXmlApplicationContext(
// "applicationContext*.xml");
private static ApplicationContext context ;
public static ApplicationContext getContext() {
return context;
}
/**
* 通过权限管理QxglInitServlet来设置context
* @param context
*/
public static void setContext(ApplicationContext context) {
MyBeanUtil.context = context;
}
/**
* 在应用程序中,获取到spring的beans对象。<br>
* 首先在QxglInitServlet中设置了context。
* @param beanName
* @return
*/
public static Object getBean(String beanName) {
return context.getBean(beanName);
}
/**
* 在web环境中,通过WebApplicationContext来获取spring的bean。
* @param request
* @param beanName
* @return
*/
public static Object getBean(HttpServletRequest request, String beanName) {
WebApplicationContext webApplicationContext = WebApplicationContextUtils
.getWebApplicationContext(request.getSession()
.getServletContext());
return webApplicationContext.getBean(beanName);
}
/**
* 在web环境中,通过WebApplicationContext来获取spring的bean。
* @param context
* @param beanName
* @return
*/
public static Object getBean(ServletContext context, String beanName) {
WebApplicationContext webApplicationContext = WebApplicationContextUtils
.getWebApplicationContext(context);
return webApplicationContext.getBean(beanName);
}
}
- 大小: 170.7 KB
分享到:
相关推荐
在Spring 2.0.8中,ApplicationContext接口是Spring应用的核心,它允许开发者从容器中获取Bean,同时提供了一种方式来加载和解析配置元数据。 4. **Spring AOP**: AOP在Spring 2.0.8中用于实现横切关注点,如日志...
Struts 2.1、Spring 2.0.8 和 Hibernate 3.1 是三个非常重要的Java企业级开发框架,它们在2000年代末到2010年代初广泛应用于构建大型Web应用程序。这个压缩包文件组合了这三个框架的特定版本,旨在提供一个集成的...
通过阅读和分析Spring 2.0.8的源码,开发者可以深入了解Spring的内部工作机制,这对于优化应用性能、排查问题以及定制化开发都有极大的帮助。尽管Spring已经发展到更高的版本,但其核心设计理念和机制在后续版本中...
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试...
《Spring框架2.0.8源码解析》 在Java世界中,Spring框架以其高度的灵活性、可扩展性以及...通过对源码的深入研究,开发者不仅可以提升自己的技术水平,还能更好地利用Spring解决实际问题,提高软件开发的效率和质量。
此外,Spring 2.0.8还增强了对JMS(Java消息服务)和邮件服务的支持,提供了集成各种消息中间件和发送邮件的能力,使得分布式系统中的异步通信和通知变得更加容易。 总而言之,Spring Framework 2.0.8是一个集大成...
在 Spring 2.0.8 中,有编程式事务管理和声明式事务管理两种方式。编程式事务管理允许开发者在代码中显式地开始、提交或回滚事务,而声明式事务管理则通过 AOP(面向切面编程)来实现,可以在不需要修改业务代码的...
《Spring 2.0.8 API 深度解析》 Spring Framework 2.0.8 是一个重要的版本,它在当时的Java企业级应用开发中扮演了关键角色。这个版本引入了许多新特性,增强了框架的稳定性和灵活性。本文将深入探讨Spring 2.0.8 ...
spring-jdbc-2.0.8.jar
spring-context-2.0.8.jar
struts2.1.6+Spring2.0.8+Ibatis2.3.4工程 开发工具:eclipse3.3+myeclipse6.5 应用技术:Struts2,Spring,Ibatis 数据库:oracle 测试JDK:JDK1.6 测试服务器:Tomcat6.0 非常完整的工程,部署到Tomcat上就可以使用...
spring-aop-2.0.8.jar
spring-support-2.0.8.jar
Struts2.1.2、Spring2.0.8和Hibernate3.3.1是经典的Java企业级开发架构,被称为SSH(Struts2、Spring、Hibernate)框架。这些框架组合在一起,提供了完整的MVC(Model-View-Controller)设计模式支持,以及数据持久...
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由...从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
spring-mock-2.0.8.jar
- **消息处理**:Spring Integration模块支持异步消息传递和企业级集成。 5. **学习与进阶** - 对于初学者,可以从Spring官方文档和各种教程开始,理解基本概念和用法。 - 进阶学习可以关注Spring的高级特性,如...
spring-security-2.0.8的官方jar包和api,不过不是html的,可能不太方便
spring-beans-2.0.8.jar