Scala框架选择

jopen 10年前

我所知道的Scala持久层框架有:

1、Slick (typesafe出品)

2、Squeryl

3、Anorm(Play的持久层)

4、ScalaActiveRecord (基于Squeryl之上)

5、circumflex-orm

6、activate-framework(不只是scala版的hibernate,支持async db)

 

web框架的话

1、Spray(build on akka,完全异步,非阻塞,非常有前景,适合REST后端程序)

2、Play(还不是很习惯)

3、Scalatra(对akka,squeryl等都有现成集成,适合需要view层的)

4、Lift

 

我的选择:

1、对于api层

采用Spray+Akka+Slick/ScalaActiveRecord

 

2、对于普通web应用

采用Scalatra/Spray+Slick/ScalaActiveRecord

 

采用ScalaActiveRecord的原因:

1、基于Squeryl的rails风格

2、可集成数据库连接池(BoneCP)

3、可进行事务控制(支持optimistic locking)

 

采用Slick的原因:

1、typesafe官方产品

2、可集成数据库连接池

     参考 https://gist.github.com/filipelenfers/7914993

     参考 http://slick.typesafe.com/doc/2.1.0/connection.html#using-a-datasource

3、事务控制(目前好像不支持optimistic locking)

      参考 

    

spray集成actor的参考架构

spray-akka-todomvc


来自:http://my.oschina.net/scipio/blog/302465