WEB开发网
开发学院软件开发Java Scala与Spring:强强联合 阅读

Scala与Spring:强强联合

 2010-08-04 00:00:00 来源:WEB开发网   
核心提示: 使用:classPersonDaoTestCaseextendsAbstractTransactionalDataSourceSpringContextTests{@BeanPropertyvarpersonDao:PersonDao=nulloverridedefgetConfigLocati

使用:

class PersonDaoTestCase extends AbstractTransactionalDataSourceSpringContextTests { 
  @BeanProperty var personDao:PersonDao = null 
   
  override def getConfigLocations() = Array("ctx-jpa.xml", "ctx-datasource.xml") 
 
  def testSavePerson { 
    expect(0)(personDao.findAll().size) 
    personDao.save(new Person("Rod Johnson")) 
    val persons = personDao.findAll() 
    expect(1)( persons size) 
    assert(persons.exists(_.name ==”Rod Johnson”)) 
  } 
}

接下来解释上面的代码是如何解决之前遇到的那些问题的:

关于集合

Scala 2.7.x提供了一个方便的Java集合到Scala集合的转换类,这是通过隐式转换实现的。上面的示例将一个Java list转换为Scala list,如下代码所示:

导入Scala.collection.jcl.Conversions类的所有方法:

import Scala.collection.jcl.Conversions._  这个类提供了隐式的转换方法将Java集合转换为对应的Scala集合“包装器”。对于java.util.List来说,Scala会创建一个Scala.collection.jcl.BufferWrapper。

调用BufferWrapper的toList()方法返回Scala.List集合的一个实例。

下面的代码阐述了这个转换过程:

def findAll() : List[T] = { 
  getJpaTemplate().find("from " + entityClass.getName).toList.asInstanceOf[List[T]] 
}

总是手工调用“toList”方法来转换集合有些麻烦。幸好,Scala 2.8(在本文撰写之际尚未发布最终版)将会解决这个瑕疵,它可以通过scala.collection.JavaConversions类将Java转换为Scala,整个过程完全透明。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Scala Spring 强强联合

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接