본문 바로가기
이것저것(독후감같은거)

playframework in java (2.4.4)

by 혜룐 2015. 11. 26.



scal나 java 둘중에 선택할수 있는데, java와 ORM은 Ebean으로 사용해보려고 한다.

( https://github.com/lhr0916/playframework_in_java_first )


  • 튜토리얼을 참고해서 프로젝트는 셋팅하고, 디펜던시 설정을 build.sbt에 한다.
    • ORM 을 Ebean말고 하이버네이트사용할때는 build.sbt 에 디펜던시 추가
    • mysql드라이버도 추가
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaJpa,
"org.hibernate" % "hibernate-entitymanager" % "3.6.9.Final",
"mysql" % "mysql-connector-java" % "5.1.18",
"junit" % "junit" % "4.12" % "test",
javaWs
)
  • plugin.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")
  • application.conf
    • DB는 h2로 사용하면 테스트작성시에도 유용하다. 
    • (그래서 ORM으로 작성하면 서비스와 테스트시 사용되는 DB에 대한 디펜던시가 없어 사용하는게 좋은것 같다.)
    • mysql 설정도 H2설정과 다르지 않다. (driver랑 url)

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:test"
db.default.username=sa
db.default.password=""


//db.default.driver=com.mysql.jdbc.Driver
//db.default.url="jdbc:mysql://a.com:3306/a?characterEncoding=utf-8"
//db.default.username=dev
//db.default.password="dev"
  • Ebean
    • Ebean에 대한 정책은 유연하게 가져갈수 있다. conf/ebean.properties 파일이나 serverconfig 로 서버가 뜰때 설정할수있다. ( https://www.playframework.com/documentation/2.4.x/JavaEbean ) 
    • models/* 기본설정으로도 할수 있다.

ebean.default = ["models.*"]
  • entity
    • play에서는 entity라고 표현하는거 같다. 내가 아는 domain 맞다. 
    • app > models  하위로 entity로 패키징하는게 맞는거 같다. (정작..ㅎㅎ 난 domain이라고 함 )
    • Ebean에 Model을 상속받으면 된다.
@Entity
public class AdminUser extends Model{
  • run
    • 인텔리J 콘솔에서 activator > run
    • routes 가 디스페쳐역할을 한다. routes파일에 URI 설정이 필요하고, 
    • USER 를 save하는 uri을 ->  http://0.0.0.0:9000/save/jj.lee  이렇게 정의했다.


끝^^


참고

  • http://www.typesafe.com/activator/template/play-spring-data-jpa#code/app/models/PersonRepository.java
  • https://www.playframework.com/documentation/2.4.x/JavaJPA
  • https://www.playframework.com/documentation/2.4.x/Tutorials 튜토리얼
  • https://www.playframework.com/documentation/2.4.x/Evolutions