UNPKG

@zuiwoxing/posisi

Version:

一款基于typescript 前端控制组件,包括(IOC,AOP,Feign,Logger,Util等)

101 lines (100 loc) 2.85 kB
/** *@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; }