node-web-mvc
Version:
node spring mvc
43 lines (42 loc) • 1.14 kB
TypeScript
/**
* @module BeanDefinition
* @description bean定义
*/
import { ClazzType } from '../../interface/declare';
export type ScopeType = 'prototype' | 'singleton' | 'request';
export interface BeanTypeClazz {
new (): any;
}
export default class BeanDefinition {
private beanType;
/**
* 对应的函数
*/
readonly method: Function;
readonly methodClazz: ClazzType;
/**
* 当前bean作用域类型
*/
readonly scope: ScopeType;
/**
* 当前类所在的文件
*/
readonly path: string;
/**
* 对应的类
*/
get clazz(): ClazzType;
static toBeanName(name: string | Function): string;
/**
* 构造一个bean定义
* @param clazz bean构造函数
* @param scope 作用域
*/
constructor(clazz: Function, method: Function, scope: ScopeType);
/**
* 如果是函数创建bean,由于typescript在函数没有显示指定返回类型时,无法获取返回值类型
* 为了补全clazz 在创建实例后会根据实例类设置clazz类型
* @param clazz
*/
fallbackBeanType(clazz: ClazzType): void;
}