2009-06-02 89 views
4

我使用scala的spring,並且在嘗試使用trait/superclass注入服務時遇到問題。使用Spring的@Autowired和scala

這是我的代碼:

trait MyServiceHolder{ 
    var myService:MyService = null 

    @Autowired 
    def setMyService(ms:MyService) = myService = ms 
} 

@RunWith(classOf[SpringJUnit4ClassRunner]) 
@ContextConfiguration(Array("file:src/main/webapp/WEB-INF/application-context.xml")) 
class MyConcreteClass extends MyServiceHolder{ 

    def hello() = myService.hello() 

} 

這工作:

@RunWith(classOf[SpringJUnit4ClassRunner]) 
@ContextConfiguration(Array("file:src/main/webapp/WEB-INF/application-context.xml")) 
class MyConcreteClass{ 

    var myService:MyService = null 

    @Autowired 
    def setMyService(ms:MyService) = myService = ms 

    def hello() = myService.hello() 

} 

的問題是,爲myService是我的測試用例無效。在查看字節碼級別(類文件)時,所有註釋都存在。有任何想法嗎?

回答

3

在運行測試時,您需要使用Spring TestContext Framework的表單來讓Spring配置Spring。

+0

我正在使用junit轉輪。將它添加到我的代碼中。 – MrWhite 2009-06-02 12:08:39