spring中实现自己的初始化逻辑
实现这两个listener都可以进行自己的初始化逻辑。
InitializingBean.afterPropertiesSet 这个优先调用
ApplicationListener.onApplicationEvent 这个后调用 他们分别由 AbstractApplicationContext.refresh 方法
调用的如下两个函数调用到的:
finishBeanFactoryInitialization(beanFactory);
finishRefresh();
public class InitListener implements ApplicationListener, InitializingBean {
    @Resource
    private AboutDao aboutDao;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("afterPropertiesSet");
        Integer count = 0;
        try {
            count = aboutDao.count();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(count);
    }
    @Override
    public void onApplicationEvent(ApplicationEvent event) {
        //防止重复调用
        ApplicationContext ctx = (ApplicationContext) event.getSource();
        if (ctx.getParent() != null) {
            return;
        }
        System.out.println("onApplicationEvent");
        Integer count = 0;
        try {
            count = aboutDao.count();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(count);
    }
}												
											spring中实现自己的初始化逻辑的更多相关文章
- 模拟Spring中applicationContext.xml配置文件初始化bean的过程
		package com.xiaohao.action; import java.io.File; import java.lang.reflect.Method; import java.util.C ... 
- Spring 声明事务中transactionAttributes属性 + - Exception 实现逻辑
		下面是一段典型的Spring 声明事务的配置: <bean id=“baseTxProxy” lazy-init=“true”class=“org.springframework.transac ... 
- Spring中初始化bean和销毁bean的时候执行某个方法的详解
		关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过注解@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 ... 
- spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入
		<spring扩展点之二:spring中关于bean初始化.销毁等使用汇总,ApplicationContextAware将ApplicationContext注入> <spring ... 
- Spring中ApplicationContext加载机制和配置初始化
		Spring中ApplicationContext加载机制. 加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet. ... 
- Tomcat启动时加载数据到缓存---web.xml中listener加载顺序(例如顺序:1、初始化spring容器,2、初始化线程池,3、加载业务代码,将数据库中数据加载到内存中)
		最近公司要做功能迁移,原来的后台使用的Netty,现在要迁移到在uap上,也就是说所有后台的代码不能通过netty写的加载顺序加载了. 问题就来了,怎样让迁移到tomcat的代码按照原来的加载顺序进行 ... 
- 关于servlet中要写初始化逻辑应该重载有参还是无参的init
		关于开发者在写初始化逻辑的时候,应该选用的哪个init方法@author mzy 在查看servlet的源码的时候,因为servlet是一个接口使用较麻烦: 所以我们使用它的实现类:GenericSe ... 
- Spring中文文档-第一部分
		一. Spring 框架概述 Spring是为了构建企业应用的轻量级框架.然而,Spring是模块化的,允许你只是使用其中的一部分,不需要引入其他的.你可以在任何web框架上使用IoC容器,也可以只使 ... 
- Spring中文文档
		前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ... 
随机推荐
- mongoDB 数据导出之mongoexport的用法
			http://tuozixuan.iteye.com/blog/1321994 实战代码: #mongo导出 mongoexport --port 33001 -d bsdf_soe -c ... 
- GIS中的坐标系
			原文地址:http://www.cnblogs.com/onsummer/p/7451128.html 从第一次上地图学的课开始,对GIS最基本的地图坐标系统就很迷.也难怪,我那时候并不是GIS专业的 ... 
- Mac 上的终端神器 iTerm2
			官方下载地址:http://www.iterm2.com/ 主题下载地址:https://github.com/mbadolato/iTerm2-Color-Schemes 第三方教程推荐:http: ... 
- NIO之阻塞IO与非阻塞IO(包含Selector使用)
			阻塞IO 传统的 IO 流都是阻塞式的. 也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务. 因此,在完成网络通信 ... 
- JAVA Hibersap 框架调用 SAP
			In this example we will create a simple Maven project which uses Hibersap to call a function in SAP ... 
- formail 发送HTML 邮件通过 SENDMAIL
			cat a.html | formail -I "Content-type:text/html;charset=utf-8" -I "Subject:layer4 con ... 
- 使用sklean进行多分类下的二分类
			#coding:utf-8 import matplotlib.pyplot as plt import numpy as np from sklearn.linear_model import Lo ... 
- vimrc之fileformat
			我在Linux开发时经常会遇到这样的问题,在windows下编辑的文件拿到Linux下打开时发现会在每行的结尾出现一个^M的符号,影响美观 为了消除这个符号,刚开始不知道Linux下有unix2dos ... 
- spring过滤器和拦截器的区别和联系
			一 简介 (1)过滤器: 依赖于servlet容器,是JavaEE标准,是在请求进入容器之后,还未进入Servlet之前进行预处理,并且在请求结束返回给前端这之间进行后期处理.在实现上基于函数回调,可 ... 
- 【精】cookie、 sessionStorage 、localStorage之间的异同
			1.cookie:存储在用户本地终端上的数据.有时也用cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密.一般应用最典型的案列就是判断注册用户是否 ... 
