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
'이것저것(독후감같은거)' 카테고리의 다른 글
읽기 좋은 코드가 좋은 코드다 (0) | 2016.02.01 |
---|---|
git push origin --delete feature/cluster_kk_server (0) | 2016.01.15 |
cytoscape.js : 시각화 관련된 js 트래킹 (0) | 2015.11.10 |
http error code (0) | 2015.11.10 |
webform 디자인을 읽고.. (0) | 2015.11.10 |