我开始学习scala,并尝试构建一些简单的应用程序来测试更多的语言。
我正在为中间层应用程序(而不是Web框架)寻找非侵入式框架/容器。最初,因为我非常熟悉它,所以我即将开始春天。但是,鉴于scala提供了一种与java相比完全不同的方式。我想知道Spring是否是最好的scala框架,可以从scala中获取最多的价值。我很想知道在scala社区中是否有新的更好的方法来做事。
我对框架/容器的期望将能够解决以下基本元素:配置,模块化,监视(例如JMX),依赖注入。其他的东西,如JPA,JMS,连接池将是一个加号。
我听说过Lift,但它似乎更像是一个Web框架。
谢谢
答案 0 :(得分:2)
你看过OSGi吗?我所看到的Scala包装器(ScalaModules)就是pretty impressive。
但请记住,Scala可以在编译时以类型安全的方式执行依赖项注入。我不是想把你推进去,只是指出你没有使用Java的东西。
答案 1 :(得分:1)
我和你处于类似的位置,我和Spring一直保持着良好的关系。唯一令人烦恼的是我的IDE(IntelliJ IDEA)内置Spring支持并将我的spring配置文件标记为完全没有错误。
我发现我可以做的一件事,而不是通过Spring注入多个 service 实现,就是使用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版本那样灵活,但对于大多数应用程序而言,在服务实现之间切换的灵活性并不是必需的。但是,它仍然保留了持久代码不与业务逻辑的其余部分混合的事实。