我有一些数据源需要在事务中包装操作,这有两种可能的结果:成功和失败。这种方法引入了相当多的样板代码。我想做的是这样的(失败也是如此(@txFailure
可能是这样)):
@txSuccess(dataSource)
def writeData(data: Data*) {
dataSource.write(data)
}
宏注释在哪里@txSuccess
,处理后将导致:
def writeData(data: Data*) {
val tx = dataSource.openTransaction()
dataSource.write(data)
tx.success()
tx.close()
}
正如你所看到的,这种方法非常有用,因为在这个例子中,75% 的代码可以被删除,因为它是样板。
那可能吗?如果是的话,你能给我一个正确的方向吗?如果没有,您可以推荐什么来实现这样的目标?