0 0

springMVC 实现ApplicationListener<ContextRefreshedEvent>接口0

问题是这样的,还请大家仔细看,

public class BeanDefineConfigue  implements ApplicationListener<ContextRefreshedEvent> {

    List<String> list = new ArrayList<String>();
    /**
     * 当一个ApplicationContext被初始化或刷新触发
     */
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        list.add("111");
    }

此时BeanDefineConfigue在applicationContext.xml中注册,这样的话在程序运行中,list.size() = 2 (除了有一个applicationContext.xml外工程中还有一个spring-servlet.xml)
但假如这样写:
@Service
public class BeanDefineConfigue  implements ApplicationListener<ContextRefreshedEvent> {

    List<String> list = new ArrayList<String>();
    /**
     * 当一个ApplicationContext被初始化或刷新触发
     */
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        list.add("111");
    }

直接通过注解方式,注册这个bean,这样的话在程序中得到list.size() = 1.
在下百思不得其解,还请大牛帮忙,谢谢
2012年11月27日 11:32

4个答案 按时间排序 按投票排序

0 0

请问怎么解决此加载2次的问题???
QQ:342913415

2015年3月21日 10:55
0 0

http://blog.csdn.net/fatherican/article/details/9130165

这个帖子里有说明

2013年10月18日 14:23
0 0

此时BeanDefineConfigue在applicationContext.xml中注册,这样的话在程序运行中,list.size() = 2 (除了有一个applicationContext.xml外工程中还有一个spring-servlet.xml)

这种情况可能是:
1、在applicationContext.xml中注册并在spring-servlet.xml注册了  贴下配置文件看下
2、在applicationContext.xml中注册,并保持@Service注解

2012年12月04日 19:49
0 0

你是不是先执行的@Service这种方式,此时list.size()=1,然后修改成在applicationContext.xml中注册这种方式,此时spring容器没有重新new BeanDefineConfigue对象,还是使用原来的对象,所以再次出发application refrsh事件后,调用onApplicationEvent方法,而此时BeanDefineConfigue对象中已经保留了原来的一个"111",所以再次执行一次就变成两个"111"了?

可以跟踪一下onApplicationEvent方法的调用次数,看看什么操作导致onApplicationEvent调用两次。

2012年11月27日 14:40

相关推荐

    SpringMVC事件监听ApplicationListener实例解析

    要使用ApplicationListener,需要实现ApplicationListener&lt;T&gt;接口,其中T是监听的事件类型。例如,想要监听ServletRequestHandledEvent事件,可以定义一个类,实现ApplicationListener&lt;ServletRequestHandledEvent&gt;...

    基于SSM(Spring+SpringMVC+MyBatis)框架开发的仓库管理系统+源代码+文档说明

    # SSM-WMS基于SSM(Spring+SpringMVC+MyBatis)框架开发的仓库管理系统&lt;br&gt;开发中&lt;br&gt;数据库&lt;br&gt;Mysql&lt;br&gt;&lt;br&gt;后端&lt;br&gt;Spring&lt;br&gt;SpringMVC&lt;br&gt;MyBatis&lt;br&gt;Slf4j&lt;br&gt;Log4j&lt;br&gt;Shiro&lt;br&gt;Ehcache&lt;br&gt;Fastjson&lt;br&gt;&lt;br&gt;...

    SpringMVC中json转换所需要的Maven仓库的jar包

    该资源为SpringMVC中json转换所需要的Maven仓库,如果maven下载包的时候速度太慢,可以使用我的这个资源,把这个直接考到本地Maven仓库即可。 对应的Maven依赖如下: &lt;dependency&gt; &lt;groupId&gt;org.codehaus.jackson&lt;/...

    springMVC+MyBatis整合Maven代码

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; ``` 在`springmvc-servlet.xml`中,配置处理器映射器、处理器适配器、视图解析器以及其他Spring MVC的相关...

    mac下mvn搭建web工程

    &lt;artifactId&gt;springmvc&lt;/artifactId&gt; &lt;packaging&gt;war&lt;/packaging&gt; &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt; &lt;name&gt;springmvc Maven Webapp&lt;/name&gt; &lt;url&gt;http://maven.apache.org&lt;/url&gt; &lt;properties&gt; &lt;!-- spring ...

    框架ssm整合

    &lt;servlet-name&gt;springMVC&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;...

    SpringMVC课堂笔记

    &lt;servlet-name&gt;springmvc&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;/...

    SpringMVC-SpringBoot项目搭建.docx

    &lt;artifactId&gt;springmvc&lt;/artifactId&gt; &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt; &lt;packaging&gt;war&lt;/packaging&gt; &lt;!-- 其他配置... --&gt; &lt;/project&gt; ``` 在这个示例中,`packaging`属性设置为`war`,表明这是一个Web应用...

    springMVC+mybitis+mongodb+maven整合

    &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt; &lt;version&gt;4.3.23.RELEASE&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;...

    SpringMVC实现数据库连接--jdbcTemplate

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;/servlet-context&gt; ... &lt;/web-app&gt; ``` 最后,创建一个`spring-mvc-servlet.xml`配置文件,用于Spring...

    IntelliJ IDEA maven 构建简单springmvc项目(图文教程)

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;servlet&gt; &lt;servlet-name&gt;appServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web....

    IDEA SpringMVC集成mybatis

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;servlet&gt; &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet....

    maven搭建SSM框架

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;servlet&gt; &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet...

    SSM三大框架整合详细总结(Spring+SpringMVC+MyBatis).pdf

    &lt;spring.version&gt;4.0.2.RELEASE&lt;/spring.version&gt; &lt;mybatis.version&gt;3.2.6&lt;/mybatis.version&gt; &lt;slf4j.version&gt;1.7.7&lt;/slf4j.version&gt; &lt;log4j.version&gt;1.2.17&lt;/log4j.version&gt; &lt;/properties&gt; &lt;dependencies&gt; &lt;!...

    Java实训教程 Java软件开发实战 Java开发框架介绍 SpringMVC_1_开发环境搭建 共41页.pptx

    `&lt;url&gt;`标签中的URL是指向Nexus服务器的地址,`&lt;id&gt;`标签定义了一个标识符,用于区分不同的代理配置。`&lt;releases&gt;`和`&lt;snapshots&gt;`标签控制是否启用该代理来下载发布版和快照版本的依赖包。 3. **创建Maven项目**:...

    SpringMVC4整合tiles3

    &lt;listener-class&gt;org.springframework.web.context.request.RequestContextListener&lt;/listener-class&gt; &lt;/listener&gt; ``` 四、配置Tiles 在`servlet-context.xml`中,配置Tiles3的视图解析器: ```xml &lt;bean id=...

    Spring+SpringMVC+Mybatis框架整合例子

    在IT行业中,开发高效、可维护的Web应用是至关重要的,而Spring、SpringMVC和Mybatis这三大框架的整合正是实现这一目标的有效途径。这个"Spring+SpringMVC+Mybatis框架整合例子"旨在帮助开发者快速搭建一个完整的...

    SpringMVC整合Freemarker例子

    Map&lt;String, Object&gt; model = new HashMap&lt;&gt;(); model.put("message", "Hello, SpringMVC + Freemarker!"); return new ModelAndView("hello", model); } } ``` 在上述示例中,"hello"是视图名称,对应的...

    SpringMVC知识点.doc

    &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt; &lt;version&gt;5.3.23&lt;/version&gt; &lt;/dependency&gt; &lt;!-- Servlet API --&gt; &lt;dependency&gt; &lt;groupId&gt;javax.servlet&lt;/groupId&gt; ...

    SpringMVC搭建

    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; ``` 6. **配置spring-mvc-servlet.xml** 在WEB-INF目录下创建spring-mvc-servlet.xml文件,配置...

Global site tag (gtag.js) - Google Analytics