0
我想弄清楚如何创建一个配置类,类似于你会在春天Aurelia做什么。用例基本上具有消费模块,提供持久性等功能来管理自己的配置(创建连接,注册依赖关系等)。Aurelia DI配置类一拉春@配置
在弹簧,可以有这样的事情(伪代码中,未经过测试):
@Configuration
class Config {
@Bean
public Connection createConnection(string cnt) {
// TODO: create connection
}
}
上面的代码将执行createConnection
方法并注册与所述容器的连接,并且还通过调用该方法时,连接字符串变量为cnt
。
我相信我能做到类似如下:
export class Dependencies {
public configure(container: Container): void {
let cnt: string = container.get('cnt');
container.registerSingleton(Connection,() => {
// TODO: create connection
})
}
}
然后再调用这个别的地方像这样:
class App {
constructor(dependencies: Dependencies) {
dependencies.configure(this.container, this.cnt);
}
}
这种方法的问题是,配置变得明确,和您必须知道配置类的名称,调用的方法以及何时调用它,因为您希望在创建连接之前注册连接字符串。
恕我直言,具有明确的配置步骤使事情减少紧耦合。此外,通过工厂方法提供依赖性的方式也使配置更容易,更符合人体工程学。
总之,我的两个问题是:
- 是否有可能有一个明确的配置
@configuration
一步,像@singleton
或@transient
? - 如何通过工厂方法/函数注册依赖关系,最好使用装饰器?