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容器加载时执行自定义的方法相关推荐

  1. vue 加载页面时触发时间_详解Vue.js在页面加载时执行某个方法

    详解Vue.js在页面加载时执行某个方法 jQuery中可以这样写 vue中,如果要达到相同效果,可以使用vue的生命周期函数,如create或者mounted 附上vue.js的生命周期函数执行流程 ...

  2. spring.factories加载原理以及自定义EnvironmentPostProcessor

    目录 spring.factories加载原理 1. SpringApplication的构造方法 1.1 SpringApplication#getSpringFactoriesInstances ...

  3. html页面加载时执行ajax请求,函数在页面加载时发送ajax请求

    我有下面的代码在页面加载运行.我只想在用户完成在文本框中写入时运行它.函数在页面加载时发送ajax请求 代码是: $(document).ready(function() { $("#use ...

  4. spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)

    原文地址:http://zhaoshijie.iteye.com/blog/1974682 应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用了其他 ...

  5. 通过web.xml文件自动启动spring容器加载对应的配置文件

    在web开发中可以在web.xml文件中配置自启动的servlet或者web容器监听器,借助两者中的任何一者都可以完成启动spring web应用上下文的工作. 下面给出使用web监听器的方式来实现启 ...

  6. 小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法

    当父组件引用了子组件的时候,会遇到父组件执行子组件的方法,比如下拉刷新上拉加载等事件只有在页面中才能检测到,但是获取数据的方法在子组件,这时就可以执行子组件方法. 思路很简单,类似于vue中给子组件加 ...

  7. 小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法...

    当父组件引用了子组件的时候,会遇到父组件执行子组件的方法,比如下拉刷新上拉加载等事件只有在页面中才能检测到,但是获取数据的方法在子组件,这时就可以执行子组件方法. 思路很简单,类似于vue中给子组件加 ...

  8. html页面加载时执行ajax请求,页面加载完成之后,ajax远程调用的数据才显示出来。有没有可能使ajax部分的程序执行完了,页面再加载完成...

    王不懒 (作者) 回复 DCloud_UNI_FXY: mui.plusReady(function(){ var now = plus.webview.currentWebview(); now.h ...

  9. java js 执行效率_JavaScript提高加载和执行效率的方法

    前言 无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载 ...

最新文章

  1. Python实现链表
  2. Exchange动态同步中的INTERNET_29错误代码
  3. 背完这444句英语,你的口语绝对不成问题了
  4. 各国家分析之- 阿根廷与乌拉圭
  5. 计算机专业是否限制语种,高考日语选什么专业(如果高考选日语,大学选专业有什么限制)...
  6. 计算机应用基础19秋在线作业2,计算机应用基础19春在线作业2.doc
  7. java实现聊天室界面javafx_java 聊天室WeChat
  8. Eclipse中的Tomcat:6个流行的“如何”问题
  9. Spring与Hibernate整合中,使用OpenSessionInViewFilter后出现sessionFactory未注入问题
  10. 一文玩转 EhCache 缓存框架!
  11. memset 结构体内指针_数据结构之线性表应用——内存管理
  12. 大道至简第四章读后感
  13. 阿里官宣AI框架大牛贾扬清加盟,任职技术VP
  14. 使用php-amqplib连接rabbitMQ 学习笔记及总结
  15. C++基础:C++的封装/继承/多态
  16. django中搜索表单
  17. Spring异步切面源码解析
  18. 基于微信小程序的记账系统
  19. Office2016专业增强版与Visio2016专业版不能共存的解决办法
  20. html浮窗音乐播放器插件,墨涩网 - WordPress浮窗音乐播放器Floating Window Music Player V3.2.6——墨涩网...

热门文章

  1. KVO实现原理和具体应用
  2. 从线性回归到广义线性模型
  3. 【免费wifi上网软件】80后创业者的自白信——我和好基友走上创业这条不归路
  4. Couldn't find preset @babel/preset-env relative to directory
  5. python中return0与return1_关于C++中的return 0和return 1的区别
  6. 智能扫地机器人软硬件开发笔记(1)-规格需求书
  7. app推送以及提示音java,APP集成小米消息推送自定义铃声设置
  8. uniapp使用微信小程序插件 miniprogram-thirdparty-plugin
  9. Penetration Test 渗透测试
  10. 观点六、有创意的广告不是好广告