Closed mlkt closed 4 months ago
刚刚看了下源码,发现好像应该用 @Constant
这个注解
似乎要这样写
@Constant({ id: 'AAA', constantValue: new AAA("123") })
export default class {
}
但名字叫“常量”感觉是声明一个数值或字符串,而且定义在类上面感觉有些迷惑。
我觉得应该搞一个定义在函数上的 @Bean
的注解
class Factory {
@Bean
aaa() {
return new AAA("123")
}
}
这样明显就清晰多了,也和 Spring 里的一样
抱歉这么晚才回复。Malagu 框架提供了类似 @Bean 的能力,如下所示:
import { autoBind } from '@malagu/core';
import './index';
export default autoBind(bind => {
bind('aaa').toDynamicValue(ctx => new AAA());
});
autoBind 方法一般用在一个模块的入口文件中。详细文档可以参阅:https://malagu.naily.cc/components/core/utils#autobind
好的,感谢
比如已存在一个第三方的类AAA,怎么声明类似 new AAA("123") 后加入到容器里? 必须得定义一个额外的类存在某个字段里?
然后再在依赖方注入这个B?
感觉有点奇怪,没有类似 Spring 的
@Bean
或者定义工厂函数的方式吗?