2

コンストラクター注入を使用して、Spring で Scala クラスを自動配線する「慣用的な」方法を探しています。私はこのようなことを試しました:

   @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.リリース]

4

2 に答える 2

6

scala オブジェクトのコンストラクターで @Autowired のサポートを spring-scala プロジェクトに追加しました。これは(執筆時点では)毎晩のスナップショットのみです。

これにより、次のことが可能になります

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

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

于 2013-10-17T16:19:22.387 に答える
0

Spring MVC アプリにこのスタイルを使用します。

  @Component
  class MyService extends Logging {

    @Autowired
    private val myDao: MyDao = null

  }
于 2013-06-26T14:22:13.613 に答える