SlideShare a Scribd company logo
1 of 15
Download to read offline
Java EE 6 with Scala
      @megascus
自己紹介

• twitter   id: @megascus

• 仕事では銀行常駐してC#な案件やってます。


• Java   EE Advent Calendarぜひ見て下さい!

 http://atnd.org/events/33783
Java以外でJava EE 6
Scalaってなんだ

 Object指向型言語と関数型言語を統合した言語で最近注
 目されている。
 Twitter社も採用。
実際のコード
Entity(Java)

@Entity
public class EntityClass implements Serializable {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Long id;

    public Long getId() {
      return id;
    }

    public void setId(Long id) {
      this.id = id;
    }
}
Entity(Scala)


@Entity
@serializable
class EntityClass {
 @Id
 @GeneratedValue (strategy = GenerationType.AUTO)
 @BeanProperty // GetterとSetterの自動生成
    var id: Long = _
}
EJB(Java)
@Stateless
@LocalBean
public class CrudEJB {

    @PersistenceContext(unitName = "default")
    protected EntityManager manager;

     public EntityClass create(EntityClass entity) {
       manager.persist(entity);
       return entity;
    }

    public List<EntityClass> readAll() {
      return manager.createNamedQuery("findAll").getResultList();
    }

    public EntityClass read(Long id) {
      return manager.find(EntityClass.class, id);
    }

    public EntityClass update(EntityClass entity) {
      return manager.merge(entity);
    }

    public void delete(EntityClass entity) {
      manager.remove(entity);
    }
}
EJB(Scala)

@Stateless
@LocalBean
class CrudEJB {
 @PersistenceContext(unitName="default")
 protected var manager: EntityManager = _

    def create(entity: EntityClass): EntityClass = {
      manager persist entity
      entity
    }
    def readAll()(entity: EntityClass) = manager createNamedQuery ("findAll") getResultList

    def read(id: Long) = manager find classOf[EntityClass] id

    def update(entity: EntityClass) = manager merge entity

    def delete(entity: EntityClass): Unit = manager remove entity
}
Build


今回はMavenを使うので

pom.xmlに設定を追記していきます。
repository
<repositories>
  <repository>
   <id>scala-tools.org</id>
   <name>Scala-tools Maven2 Repository</name>
   <url>http://scala-tools.org/repo-releases</url>
  </repository>
</repositories>
<pluginRepositories>
  <pluginRepository>
     <id>scala-tools.org</id>
     <name>Scala-tools Maven2 Repository</name>
     <url>http://scala-tools.org/repo-releases</url>
  </pluginRepository>
</pluginRepositories>
dependency


<dependency>
  <groupId>org.scala-lang</groupId>
  <artifactId>scala-library</artifactId>
  <version>2.9.2</version>
</dependency>
plugin

 <plugin>
  <groupId>org.scala-tools</groupId>
  <artifactId>maven-scala-plugin</artifactId>
  <version>2.15.2</version>
  <executions>
     <execution>
       <goals>
          <goal>compile</goal>
       </goals>
     </execution>
  </executions>
</plugin>
フォルダ構成

.
├ pom.xml
└ src
   └ main
     ├ java
     ├ resources
     │ └ META-INF
    ├ scala //ここにScalaのソースを入れていく
     └ webapp
ソースコード



• https://github.com/megascus/JavaEE6Scala

More Related Content

Similar to Java ee6 with scala

Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413Funato Takashi
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングkunihikokaneko1
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
Scala.jsはじめました?
Scala.jsはじめました?Scala.jsはじめました?
Scala.jsはじめました?K Kinzal
 
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellIntroduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellbitter_fox
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_GebNobuhiro Sue
 
Best practice laravel
Best practice laravelBest practice laravel
Best practice laravelRisa Ohnishi
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみたTakahiro Hidaka
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaTakuya Tsuchida
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情takezoe
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
Scala EE 7 Essentials
Scala EE 7 EssentialsScala EE 7 Essentials
Scala EE 7 Essentialstnoda
 
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Ryo RKTM
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...Shotaro Suzuki
 

Similar to Java ee6 with scala (20)

Heroku java
Heroku javaHeroku java
Heroku java
 
Gradle布教活動
Gradle布教活動Gradle布教活動
Gradle布教活動
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
Scala.jsはじめました?
Scala.jsはじめました?Scala.jsはじめました?
Scala.jsはじめました?
 
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshellIntroduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
 
Best practice laravel
Best practice laravelBest practice laravel
Best practice laravel
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみた
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
fanscala1 3 sbt
fanscala1 3 sbtfanscala1 3 sbt
fanscala1 3 sbt
 
Scala EE 7 Essentials
Scala EE 7 EssentialsScala EE 7 Essentials
Scala EE 7 Essentials
 
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
 
ScalaMatsuri 2016
ScalaMatsuri 2016ScalaMatsuri 2016
ScalaMatsuri 2016
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 

More from Satoshi Kubo

Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations Satoshi Kubo
 
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらいSatoshi Kubo
 
できる!Pmdカスタマイズ
できる!Pmdカスタマイズできる!Pmdカスタマイズ
できる!PmdカスタマイズSatoshi Kubo
 
Javaの速度比較
Javaの速度比較Javaの速度比較
Javaの速度比較Satoshi Kubo
 
Java EEの話(仮)
Java EEの話(仮)Java EEの話(仮)
Java EEの話(仮)Satoshi Kubo
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Satoshi Kubo
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたSatoshi Kubo
 
金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjp金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjpSatoshi Kubo
 
JavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjpJavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjpSatoshi Kubo
 

More from Satoshi Kubo (12)

Jakarta CDI 4.0
Jakarta CDI 4.0Jakarta CDI 4.0
Jakarta CDI 4.0
 
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
 
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
 
今のJava
今のJava今のJava
今のJava
 
できる!Pmdカスタマイズ
できる!Pmdカスタマイズできる!Pmdカスタマイズ
できる!Pmdカスタマイズ
 
Javaの速度比較
Javaの速度比較Javaの速度比較
Javaの速度比較
 
Java EEの話(仮)
Java EEの話(仮)Java EEの話(仮)
Java EEの話(仮)
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
 
金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjp金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjp
 
JavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjpJavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjp
 

Java ee6 with scala