2009-08-28 18 views
2

私はスカラを学び始めており、テストするためにいくつかの簡単なアプリケーションを構築しようとしています。スカラ用の中間層サービスのための適切なアプリケーションコンテナは何ですか?

私は、(Webフレームワークではなく)中間層アプリケーション用の非侵入型フレームワーク/コンテナを探しています。もともと、私は春に始めようとしていました。しかし、scalaはjavaよりもはるかに異なる方法を提供しています。私はSpringがscalaの中で最大の価値をとることができるscalaのための最良のフレームワークかどうか疑問に思います。私はスカラコミュニティで物事を行うための新しい、より良い方法があるかどうかを知りたいです。

フレームワーク/コンテナへの私の期待は、構成、モジュール化、監視(例:JMX)、従属注入という、次の基本要素に対処することができます。 JPA、JMS、conneciton poolingなどの他のものはプラスになります。

リフトについて聞いたことがありますが、これはウェブフレームワークのようです。

ありがとうございました

+0

は今日ScalaModulesとSpringを見て、より良い答えがどれかを見るために時間を費やす必要があります。より多くの経験を持つソメエが両者を比較して対比することができれば素晴らしいことでしょう。 –

+0

コンパイル時にScalaModulesの代わりにSpringを選択しました。なぜなら、後者のソリューションは、他の2つの領域の設定、監視をカバーしているからです。型チェックによるコンパイル時の依存性注入はクールです。私は依存関係の小さなクラスター内でうまく動作すると思います。私の従業員の一人が本当に好きで、複数の小さな依存関係クラスターを作成して、依存関係の変更時に必要な量のコンパイルを制限しようとしました。私はおそらくもう少し探検します。 –

答えて

1

私はあなたと同じ立場にあり、私は春と一緒に暮らしています。それはうまくいきました。私のIDE(IntelliJ IDEA)にはSpringサポートが組み込まれていて、春の設定ファイルにはうまくいけばエラーでいっぱいになっているという印があります。

私は、サービスの実装をSpring経由で行う代わりに、Scalaのtraitを使用して機能の構成を使用することができることを発見しました。

私が使用する可能性があります
public SomeBusinessClass { 
    private PersistenceService dao; 
    private ValidationService validator; 
    //setters, business logic etc 
} 

を::

public class SomeBusinessClass extends Persistence with Validation { 
    @BeanProperty 
    var dataSource: DataSource = _ 
} 

これはかなりほとんどのアプリケーションのための、Javaのバージョンとして柔軟ようではありませんが、サービス実装の切り替えの柔軟性がある。例えば、代わりに使用しての本当に必要ではありません。ただし、永続的なコードがビジネスロジックの他の部分と混在していないという事実はまだ保持されています。

2

OSGiを調べましたか? Scalaのラッパー(ScalaModules)は、pretty impressiveです。

しかし、Scalaはコンパイル時に型安全な方法で依存性注入を行うことができます。私はそれをあなたに押し込もうとしているわけではなく、あなたがJavaで持っていないものを指摘しています。

関連する問題