• java在应用中获取spring定义的bean


         因为写了些bean作为quartz的任务用spring配置了,但有些时候需要在别的类中使用这些bean,没有太仔细去研究spring,依稀记得有个getBean,到网上g了一把,发现方法不止一种,选了一种最简单的方法:

         主要思路是使用静态变量保存全局的应用上下文,在spring框架中配置,框架加载时会把全局上下文实例传入。

         1、新建继承ApplicationContextAware的类:

    package com.test;

    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;

    public class SpringUtil implements ApplicationContextAware {
        
    private static ApplicationContext applicationContext;
        @Override
        
    public void setApplicationContext(ApplicationContext arg0)
            
    throws BeansException {
            SpringUtil.applicationContext 
    = arg0;
        }

        
    public static Object getBean(String name){
            
    return applicationContext.getBean(name);
        }

    }

         2、在框架中配置:

    <bean id="spring" class="com.test.SpringUtil">

         3、最后就是使用了:

    com.test.bsn.Job bsnjob = (com.test.bsn.Job)SpringUtil.getBean("bsnws");
    bsnjob.doQueryBalance();

         上面"bsnws"是配置在spring框架中的bean,直接调用SpringUtil的静态函数即可获得。

         此方法非常简单,但是把spring整个框架暴露在外,有一些风险。而且要在普通类中获取框架定义的bean,必然要依赖框架。

  • 相关阅读:
    2013第47周日整理
    2013第47周六笔记本散热及相关问题思考
    myeclipse中控制台日志比实际晚8小时解决方法及java日志处理
    2013第47周五抱怨负能量
    ORM框架
    什么是IT
    内网port映射具体解释(花生壳)
    DrawText的使用
    socket编程原理
    hibernate学习——Set集合配置
  • 原文地址:https://www.cnblogs.com/badwood316/p/1419211.html
Copyright © 2020-2023  润新知