@zuiwoxing/posisi
Version:
一款基于typescript 前端控制组件,包括(IOC,AOP,Feign,Logger,Util等)
101 lines (100 loc) • 2.85 kB
TypeScript
/**
*@desc bean定义与实例容器
*@author <a href="mailto:zuiwoxing@qq.com">liudejian</a>
*@date 2020-03-05 21:47
**/
import { BeanDefinition } from "../model/Meta";
export declare class Container {
/**
* 存放实例
* @param key beanNameKey=Object.name+qualifier
* @param value bean实例
*/
private BEAN_INSTANCE_MAP;
/**
* 存放bean定义
* @param key beanNameKey=Object.name+qualifier
* @param value ClassMeta
*/
private BEAN_DEFINITION_MAP;
/**
* 获取所有 bean名称
*/
getBeanNames(): Array<string>;
/**
* 获取所有bean定义
*/
getBeanDefinitions(): Array<BeanDefinition>;
/**
* 注册bean定义
* @param beanDefinition
*/
registerBeanDefinition(beanDefinition: BeanDefinition): this;
/**
* 获取bean定义
* @param classType class
* @param qualifier 候选标识
*/
getBeanDefinition(classType: Function, qualifier?: string): BeanDefinition;
/**
* 获取bean定义
* @param classType class
* @param qualifier 候选标识
*/
getBeanDefinitionByName(className: string, qualifier?: string): BeanDefinition;
/**
* 是否存在bean定义
* @param classType class
* @param qualifier 候选标识
*/
hasBeanDefinition(classType: Function, qualifier?: string): boolean;
/**
* 注册单例bean
* @param classType class
* @param instance 实例
* @param qualifier 候选标识
*/
registerSingleBean<T>(classType: Function, instance: T, qualifier?: string): this;
/**
* 是否存在 bean
* @param classType class
*/
hasBean<T>(classType: Function, qualifier?: string): boolean;
/**
* 获取单例bean
* @param classType class
*/
getSingleBean<T>(classType: Function, qualifier?: string): T;
/**
* 获取单例bean
* @param classType class
*/
getSingleBeanByName<T>(className: string, qualifier?: string): T;
/**
* 根据bean类型获取所有bean信息,不能自动创建bean
* @param classType
*/
getBeansByType<T>(classType: new () => T): Array<any>;
/**
* 根据bean的名称获取其下所有bean
* @param beanName
*/
getBeansByName<T>(beanName: string): Array<any>;
/**
* 根据bean名称获取[如果不存在则自动创建]
* @param className
* @param qualifier
*/
getBeanByName<T>(className: string, qualifier?: string): any;
/**
* 获取bean实例(单例|多例)[如果不存在则自动创建]
* @param classType class
*/
getBean<T>(classType: new () => T, qualifier?: string): any;
/**
* 递归设置属性
* @param parentInstance
* @param parentClassMeta
*/
private recursionSetProperty;
}