`
qq1988627
  • 浏览: 107226 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

beanFactory

    博客分类:
  • Java
 
阅读更多
package com.byd.mes.util;


import java.io.Serializable;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

import com.byd.mes.bussiness.bo.main.ShopOrderBO;
import com.byd.mes.bussiness.service.activity.Activity;
import com.byd.mes.util.cache.CacheManager;

public class BeanFactory implements ApplicationContextAware {
	private static final Log log = LogFactory.getLog(BeanFactory.class);
	private static ApplicationContext applicationContext;
	private static Map<String, String> systemParamters;
	private static PropertyConfigurer propertyConfigurer;
	public static final String INSTANCE_SINGLETON = "singleton";
	public static final String INSTANCE_PROTOTYPE = "prototype";
	private static Map clazzInstanceContext= new HashMap();
	
	public static final Map<String,ShopOrderBO> map=new HashMap<String,ShopOrderBO>();
	
	public static Object getBean(String beanName) {
		return applicationContext.getBean(beanName);
	}
	
	public static Activity getFunction(String className) {
		return getFunction(className,BeanFactory.INSTANCE_SINGLETON);
	}
	public static Activity getFunction(String className,String instanceType) {
		Object obj = getClazzIns(className,instanceType);
		if(!(obj instanceof Activity)) throw new RuntimeException("必须实现com.byd.mes.bussiness.service.siteoperation.sfc.Function接口");
		return (Activity) obj;
	}
	public static Object getClazzIns(String className,String instanceType) {
		try{
			if(StringUtils.equalsIgnoreCase(INSTANCE_SINGLETON,instanceType)){
				Object fn = clazzInstanceContext.get(className);
				if(fn == null){
					fn = BeanUtils.instantiateClass(Class.forName(className));
					clazzInstanceContext.put(className, fn);
				}
				return fn;
			}
			else if(StringUtils.equalsIgnoreCase(INSTANCE_PROTOTYPE,instanceType)){
				return BeanUtils.instantiateClass(Class.forName(className)) ;
			}			
		}catch(Exception ex){
			throw new RuntimeException("实例化类'"+className+"'失败 ->"+ex.getMessage(),ex);
		}
		throw new RuntimeException("实例化类'"+className+"'失败 ");
	}
	
	@Override
	public void setApplicationContext(ApplicationContext applicationContext)throws BeansException {
		log.info("set applicationContext to static>>>"+applicationContext);
		BeanFactory.applicationContext = applicationContext;
	}

	public static ApplicationContext getApplicationContext() {
		return applicationContext;
	}

	public static Map<String, String> getSystemParamters() {
		return (Map)propertyConfigurer.getProperties();
	}

	public void setPropertyConfigurer(PropertyConfigurer propertyConfigurer) {
		BeanFactory.propertyConfigurer = propertyConfigurer;
	}

}

 

分享到:
评论

相关推荐

    BeanFactory的实例化

    BeanFactory 的实例化方式 在 Spring 框架中,BeanFactory 是一个核心组件,负责管理和实例化 Bean。Spring 3 中提供了三种实例化 BeanFactory 的方法,下面将详细介绍这三种方法。 第一种方法:从文件系统资源...

    Spring中ApplicationContext和beanfactory区别.rar

    在Spring框架中,ApplicationContext和BeanFactory是两种不同的bean容器,它们各自有其特性和应用场景,理解二者的区别对于深入学习和使用Spring至关重要。 首先,BeanFactory是Spring中最基础的bean管理容器,它...

    简单模拟Spring的beanFactory

    本文将通过模拟Spring的`BeanFactory`来深入理解其工作原理,帮助开发者更好地掌握Spring的核心概念。 `BeanFactory`是Spring框架中最基础的bean管理容器,它是所有更高级别的容器(如`ApplicationContext`)的基类...

    day38 05-Spring的BeanFactory与ApplicationContext区别

    在Spring框架中,BeanFactory和ApplicationContext是两种不同的bean容器,它们各自有其特性和应用场景,理解二者的区别对于深入掌握Spring框架至关重要。 首先,BeanFactory是Spring中最基本的bean容器,它提供了对...

    二、Spring源码分析——BeanFactory

    《Spring源码分析——BeanFactory》 在Java的IoC(Inversion of Control)和DI(Dependency Injection)领域,Spring框架扮演着至关重要的角色。BeanFactory是Spring的核心组件之一,它是容器的基石,负责管理应用...

    Spring的BeanFactory的接口源码中文解释

    Spring的BeanFactory的接口的中文解释

    Spring注解驱动开发第41讲——Spring IOC容器创建源码解析(一)之BeanFactory的创建以及预准备工作(合起

    Spring注解驱动开发第41讲——Spring IOC容器创建源码解析(一)之BeanFactory的创建以及预准备工作(合起来整个过程)

    BeanFactory内部解析:Spring框架的心脏如何运作

    BeanFactory 是 Spring 框架中的一个核心接口,用于管理应用程序中的对象(也称为 bean)。它提供了一种将应用程序组件(如服务、数据源、控制器等)解耦并配置到应用程序中的方式。 总的来说,可以初步理解...

    BeanFactory面向接口编程测试工程

    在Java Web开发中,BeanFactory是Spring框架的核心组件之一,它是工厂模式的一种实现,主要用于管理对象(也称为bean)的创建、配置和依赖注入。面向接口编程是一种编程范式,鼓励开发者通过接口来定义功能,而不是...

    BeanFactory创建对象.docx

    在Spring框架中,BeanFactory是核心的容器,它负责管理和创建对象,这些对象通常被称为"bean"。BeanFactory是Spring中最基本的依赖注入(DI)容器,提供了对bean的生命周期管理以及装配。在这个文档中,我们将深入...

    spring之beanfactory

    spring之beanfactory 的一些基本知识与其关系使用

    Spring的IoC容器之BeanFactory[定义].pdf

    Spring的IoC容器是其核心特性之一,它通过BeanFactory和ApplicationContext两个主要接口来实现控制反转(Inversion of Control,IoC)的概念。BeanFactory作为基础的IoC容器,提供了全面的IoC服务,包括对象的注册、...

    Spring的BeanFactory的接口注解

    ### Spring的BeanFactory的接口注解 #### 一、引言 在Spring框架中,`BeanFactory`是工厂模式的一种实现,它负责管理容器中的Bean的生命周期与依赖注入。了解`BeanFactory`及其相关接口的功能对于掌握Spring的核心...

    68-BeanFactory与FactoryBean1

    Spring 中的 BeanFactory 和 FactoryBean BeanFactory 是 Spring 框架中的核心组件之一,负责管理 Bean 的生命周期,包括实例化、配置和注入对象之间的关系。它是 Spring IOC(控制反转)容器的核心组件,提供了...

    BeanFactory&&ApplicationContext;

    在Java的Spring框架中,`BeanFactory`和`ApplicationContext`是两个非常重要的核心概念,它们是IoC(Inversion of Control,控制反转)容器的实现,用于管理应用程序中的对象和依赖关系。理解这两个容器的区别和用途...

    spring中的BeanFactory解析xml文件

    在Spring框架中,BeanFactory是核心的容器,它负责管理和装配应用中的对象,即bean。当我们谈论“Spring中的BeanFactory解析XML文件”时,我们实际上是在讨论如何通过XML配置文件来定义、创建和管理bean。这篇文章将...

    Spring源码学习三:BeanFactory解析1

    在Spring框架中,BeanFactory是核心的IoC(Inversion of Control)容器接口,它负责管理和维护Bean的生命周期。BeanFactory提供了对Bean的创建、初始化、销毁等操作的支持,是Spring容器的基础。当我们通过XML、Java...

    简单了解Spring中BeanFactory与FactoryBean的区别

    简单了解Spring中BeanFactory与FactoryBean的区别 Spring框架中有两个非常关键的接口:BeanFactory和FactoryBean。虽然它们的名字相似,但它们的作用和实现机制却有很大的不同。 BeanFactory是Spring IoC容器的...

    tiny-spring-step-4-config-beanfactory-with-xml.zip

    BeanFactory是Spring中最基本的IOC容器接口,它负责管理Bean的生命周期,包括实例化、初始化、销毁等操作。在实际应用中,我们通常使用其子类ApplicationContext,它提供了更丰富的功能,如国际化支持、事件发布等。...

    使用BeanFactory实现创建对象

    使用BeanFactory实现创建对象 BeanFactory是一种工厂模式,主要用来创建对象。在Java中,BeanFactory是Spring框架中的一个核心组件,用于管理和创建对象。通过使用BeanFactory,可以将对象的创建和依赖注入解耦,...

Global site tag (gtag.js) - Google Analytics