-
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个答案 按时间排序 按投票排序
-
http://blog.csdn.net/fatherican/article/details/9130165
这个帖子里有说明2013年10月18日 14:23
-
此时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
-
你是不是先执行的@Service这种方式,此时list.size()=1,然后修改成在applicationContext.xml中注册这种方式,此时spring容器没有重新new BeanDefineConfigue对象,还是使用原来的对象,所以再次出发application refrsh事件后,调用onApplicationEvent方法,而此时BeanDefineConfigue对象中已经保留了原来的一个"111",所以再次执行一次就变成两个"111"了?
可以跟踪一下onApplicationEvent方法的调用次数,看看什么操作导致onApplicationEvent调用两次。2012年11月27日 14:40
相关推荐
要使用ApplicationListener,需要实现ApplicationListener<T>接口,其中T是监听的事件类型。例如,想要监听ServletRequestHandledEvent事件,可以定义一个类,实现ApplicationListener<ServletRequestHandledEvent>...
该资源为SpringMVC中json转换所需要的Maven仓库,如果maven下载包的时候速度太慢,可以使用我的这个资源,把这个直接考到本地Maven仓库即可。 对应的Maven依赖如下: <dependency> <groupId>org.codehaus.jackson</...
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> ``` 在`springmvc-servlet.xml`中,配置处理器映射器、处理器适配器、视图解析器以及其他Spring MVC的相关...
<servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>...
<servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/...
<artifactId>springmvc</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <!-- 其他配置... --> </project> ``` 在这个示例中,`packaging`属性设置为`war`,表明这是一个Web应用...
<groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.23.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>...
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </servlet-context> ... </web-app> ``` 最后,创建一个`spring-mvc-servlet.xml`配置文件,用于Spring...
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web....
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet....
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet...
<spring.version>4.0.2.RELEASE</spring.version> <mybatis.version>3.2.6</mybatis.version> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <!...
`<url>`标签中的URL是指向Nexus服务器的地址,`<id>`标签定义了一个标识符,用于区分不同的代理配置。`<releases>`和`<snapshots>`标签控制是否启用该代理来下载发布版和快照版本的依赖包。 3. **创建Maven项目**:...
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> ``` 四、配置Tiles 在`servlet-context.xml`中,配置Tiles3的视图解析器: ```xml <bean id=...
在IT行业中,开发高效、可维护的Web应用是至关重要的,而Spring、SpringMVC和Mybatis这三大框架的整合正是实现这一目标的有效途径。这个"Spring+SpringMVC+Mybatis框架整合例子"旨在帮助开发者快速搭建一个完整的...
Map<String, Object> model = new HashMap<>(); model.put("message", "Hello, SpringMVC + Freemarker!"); return new ModelAndView("hello", model); } } ``` 在上述示例中,"hello"是视图名称,对应的...
<groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.23</version> </dependency> <!-- Servlet API --> <dependency> <groupId>javax.servlet</groupId> ...
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> ``` 6. **配置spring-mvc-servlet.xml** 在WEB-INF目录下创建spring-mvc-servlet.xml文件,配置...
<groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.23</version> </dependency> <!-- Mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>...