Rei*_*eus 7 spring dependency-injection scala
我有一个简单的场景,我扩展Scala特征如下:
trait Vehicle {
@Autowired
private var myDistanceLogger: MyDistanceLogger = null
def travel(miles:Int) = {
println("travelling " + miles)
myDistanceLogger.logMiles(miles)
}
}
@Component
class Truck extends Vehicle {
}
Run Code Online (Sandbox Code Playgroud)
即使Truck包在Springs组件扫描中,我也得到一个nullpointer异常.包中的所有其他(非扩展)类都很好.关于什么是错的任何想法?
这是一个小小的猜测 - 基于这篇文章,scala 中的特征被转换为 java 接口。那么,你的特质:
trait Vehicle {
@Autowired
private var myDistanceLogger: MyDistanceLogger = null
}
Run Code Online (Sandbox Code Playgroud)
将被翻译为:
public interface Vehicle {
public MyDistanceLogger myDistanceLogger();
}
Run Code Online (Sandbox Code Playgroud)
并且@Autowired在吸气剂中没有意义,我猜这就是为什么它没有被自动装配的原因。
| 归档时间: |
|
| 查看次数: |
2169 次 |
| 最近记录: |