2013-06-26 57 views
2

我正在尋找「慣用」的方式來通過構造函數注入自動裝配斯卡拉類與Spring。 我已經試過這樣的事情:斯卡拉與春天:構造函數自動裝配

@Component 
    class MyService @Autowired() (val myDao: MyDao) extends Logging { 
    ... 
    } 

但我得到一個錯誤: 實例化bean的失敗;嵌套異常是org.springframework.beans.BeanInstantiationException:無法實例化bean類[MyService]:找不到默認構造函數;嵌套異常是java.lang.NoSuchMethodException:MyService。() at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:964)〜[spring-beans-3.0.7.RELEASE.jar:3.0 .7.RELEASE]

+0

你確定你是不是實例'MyService'手動?請添加如何在應用程序中實例化MyService。另請參閱:http://stackoverflow.com/q/7492652/1333025 –

回答

5

我添加了@Autowired支持在斯卡拉對象的構造成彈簧斯卡拉項目。這只是(在寫作時)在夜間快照中。

這允許你做

@Component 
@Autowired 
class Service(dep : Dependency) { } 

https://github.com/spring-projects/spring-scala

+0

酷!期待發布! – Vitamon

+0

熱切等待釋放:)。 – Aiden

0

我們使用這種風格的Spring MVC的應用程序:

@Component 
    class MyService extends Logging { 

    @Autowired 
    private val myDao: MyDao = null 

    } 
+1

是的,我知道這種方式,但它不像Scala-ish那樣:) – Vitamon

+1

如果你想用Scala-ish然後不要使用彈簧;)...我們一直在儘可能快地從這種風格轉變。 – Noah