Spring容器加载时执行自定义的方法
Spring容器加载时执行自定义的方法
需要实现的接口InitializingBean,ApplicationContextAware
案例
package com.djhu.research.web.service.impl.dataelement;
import com.djhu.research.web.bean.ResultResp;
import com.djhu.research.web.bean.TbDetaelementconfigVo;
import com.djhu.research.web.controller.entity.DataElementDto;
import com.djhu.research.web.controller.entity.DataElementInfo;
import com.djhu.research.web.service.IDataElementService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@Author zw
@DATE 2018/11/10 11:55
@VERSION 1.0.0
**/
@Service
public class DataElementServiceImpl implements IDataElementService,InitializingBean,ApplicationContextAware {private ApplicationContext applicationContext;
List dataElementServiceList = new ArrayList<>();
//可以根据类型来确定具体执行那个类中的哪个方法!
@Override
public ResultResp querydataElementInfoDict(DataElementDto dataElementDto) {
if(CollectionUtils.isNotEmpty(dataElementServiceList)){
for (IDataElementService dataElementService:dataElementServiceList){
ResultResp elementInfoDict = dataElementService.querydataElementInfoDict(dataElementDto);
if (elementInfoDict != null){
return elementInfoDict;
}
}
}
return defaultElementInfoDict;
}/** {@inheritDoc} /
@Override
public void afterPropertiesSet() throws Exception {
/*
* new bean autowirebean 学习一下
*/
JsonDataElementServiceImpl jsonDataElementService = new JsonDataElementServiceImpl();
applicationContext.getAutowireCapableBeanFactory().autowireBean(jsonDataElementService);
dataElementServiceList.add(jsonDataElementService);DataBaseDataElementServiceImpl dataBaseDataElementService = new DataBaseDataElementServiceImpl();applicationContext.getAutowireCapableBeanFactory().autowireBean(dataBaseDataElementService);dataElementServiceList.add(dataBaseDataElementService);
}
/** {@inheritDoc} */
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
备注:IDataElementService 是DataBaseDataElementServiceImpl ,JsonDataElementServiceImpl ,DataElementServiceImpl 三个类的接口类!程序启动之后会把三个类的实例放入DataElementServiceImpl 类的属性dataElementServiceList 中!
Spring容器加载时执行自定义的方法相关推荐
- vue 加载页面时触发时间_详解Vue.js在页面加载时执行某个方法
详解Vue.js在页面加载时执行某个方法 jQuery中可以这样写 vue中,如果要达到相同效果,可以使用vue的生命周期函数,如create或者mounted 附上vue.js的生命周期函数执行流程 ...
- spring.factories加载原理以及自定义EnvironmentPostProcessor
目录 spring.factories加载原理 1. SpringApplication的构造方法 1.1 SpringApplication#getSpringFactoriesInstances ...
- html页面加载时执行ajax请求,函数在页面加载时发送ajax请求
我有下面的代码在页面加载运行.我只想在用户完成在文本框中写入时运行它.函数在页面加载时发送ajax请求 代码是: $(document).ready(function() { $("#use ...
- spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
原文地址:http://zhaoshijie.iteye.com/blog/1974682 应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用了其他 ...
- 通过web.xml文件自动启动spring容器加载对应的配置文件
在web开发中可以在web.xml文件中配置自启动的servlet或者web容器监听器,借助两者中的任何一者都可以完成启动spring web应用上下文的工作. 下面给出使用web监听器的方式来实现启 ...
- 小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法
当父组件引用了子组件的时候,会遇到父组件执行子组件的方法,比如下拉刷新上拉加载等事件只有在页面中才能检测到,但是获取数据的方法在子组件,这时就可以执行子组件方法. 思路很简单,类似于vue中给子组件加 ...
- 小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法...
当父组件引用了子组件的时候,会遇到父组件执行子组件的方法,比如下拉刷新上拉加载等事件只有在页面中才能检测到,但是获取数据的方法在子组件,这时就可以执行子组件方法. 思路很简单,类似于vue中给子组件加 ...
- html页面加载时执行ajax请求,页面加载完成之后,ajax远程调用的数据才显示出来。有没有可能使ajax部分的程序执行完了,页面再加载完成...
王不懒 (作者) 回复 DCloud_UNI_FXY: mui.plusReady(function(){ var now = plus.webview.currentWebview(); now.h ...
- java js 执行效率_JavaScript提高加载和执行效率的方法
前言 无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载 ...
最新文章
- Python实现链表
- Exchange动态同步中的INTERNET_29错误代码
- 背完这444句英语,你的口语绝对不成问题了
- 各国家分析之- 阿根廷与乌拉圭
- 计算机专业是否限制语种,高考日语选什么专业(如果高考选日语,大学选专业有什么限制)...
- 计算机应用基础19秋在线作业2,计算机应用基础19春在线作业2.doc
- java实现聊天室界面javafx_java 聊天室WeChat
- Eclipse中的Tomcat:6个流行的“如何”问题
- Spring与Hibernate整合中,使用OpenSessionInViewFilter后出现sessionFactory未注入问题
- 一文玩转 EhCache 缓存框架!
- memset 结构体内指针_数据结构之线性表应用——内存管理
- 大道至简第四章读后感
- 阿里官宣AI框架大牛贾扬清加盟,任职技术VP
- 使用php-amqplib连接rabbitMQ 学习笔记及总结
- C++基础:C++的封装/继承/多态
- django中搜索表单
- Spring异步切面源码解析
- 基于微信小程序的记账系统
- Office2016专业增强版与Visio2016专业版不能共存的解决办法
- html浮窗音乐播放器插件,墨涩网 - WordPress浮窗音乐播放器Floating Window Music Player V3.2.6——墨涩网...
热门文章
- KVO实现原理和具体应用
- 从线性回归到广义线性模型
- 【免费wifi上网软件】80后创业者的自白信——我和好基友走上创业这条不归路
- Couldn't find preset @babel/preset-env relative to directory
- python中return0与return1_关于C++中的return 0和return 1的区别
- 智能扫地机器人软硬件开发笔记(1)-规格需求书
- app推送以及提示音java,APP集成小米消息推送自定义铃声设置
- uniapp使用微信小程序插件 miniprogram-thirdparty-plugin
- Penetration Test 渗透测试
- 观点六、有创意的广告不是好广告