Seasarプロジェクト徹底攻略


 NTTデータ先端技術株式会社
 竹添 直樹
Profile
   たけぞう
       Blog:
        http://d.hatena.ne.jp/takezoe/
       Twitter:
        @takezoen
       OSS Activ...
Purpose
   Seasarプロジェクトでは様々なプロダクトが開
    発されています
   ただし、開発がアクティブに行われていないも
    のも多く、機能・品質にもバラつきがあります
   これらのプロダクトの中から“仕事で...
突然ですが…


         Seasar2徹底入門
         SAStruts/S2JDBC対応

         ISBN:978-4798121505
         価格:3,990
         出版社:翔泳社
Seasar本の歴史
Seasar入門 はじめてのDI&AOP
Seasar 2.4登場
Seasar2によるスーパーアジャイルなWeb開発
SAStruts+S2JDBC
      登場
Seasar2入門
JavaによるはじめてのWebアプリケーション開発
SAStruts、S2JDBCの
 機能改善による変化
最新の情報をカバーした
実践的な書籍が必要だ!
そしてSeasar2徹底入門


         Seasar2、SAStruts、S2JDBCは安定期に
         S2Container、周辺プロダクトも解説




          末永く使える一冊に!
Seasar3登場?
本当にありがとう
 ございました。
本題に戻ります
Purpose
   Seasarプロジェクトでは様々なプロダクトが開
    発されています
   ただし、開発がアクティブに行われていないも
    のも多く、機能・品質にもバラつきがあります
   これらのプロダクトの中から“仕事で...
Web Framework
   (SAStruts)
   Cubby
   Mayaa
   Teeda
   Ymir
   S2JSF
   S2Struts
学習コストの低いWebフレームワークを使いたい!


 Cubby                                                http://cubby.seasar.org/

        Servle...
プログラマとデザイナを分業したい!


   Mayaa                                            http://mayaa.seasar.org/

        Tapestry、S2JSFの...
DataBase Access Framework
   (S2JDBC)
   DBFlute
   Doma
   Kuina
   S2Dao
現場でトラブルになりにくいO/Rマッパを使いたい!


DBFlute           http://dbflute.sandbox.seasar.org/

   Apache Torque/S2Daoを参考に開発された「現
    場...
S2JDBCもいいけどS2Daoもいいよね!


Doma                                               http://doma.seasar.org/

       APT(Annotatio...
Remoting/Communications
   S2BlazeDS
   S2Axis
   S2JMS
   S2Flex
   S2RMI
Flex/AIRからSeasar2のコンポーネントを呼び出したい!


 S2BlazeDS                                                   http://s2blazeds.seasar.o...
Webサービスを簡単に作成したい!


 S2Axis                                                    http://s2axis.seasar.org/ja/

      POJOをW...
Libraries
   S2Mai
   S2CSV
   S2Chronos
   S2Caching
   Fisshplate
メールを送信したい!


S2Mai                     http://s2mai.sandbox.seasar.org/ja/

   送信先等の設定をdiconファイルで管理可能
   S2Daoのメール版(Maiイ...
CSVファイルの入出力を行いたい!


S2CSV                                  http://s2csv.sandbox.seasar.org/

   CSVとJavaBeanをアノテーションでマッピン...
アプリケーションに定期処理を組み込みたい!


S2Chronos                           http://s2chronos.sandbox.seasar.org/

   タスクスケジューラ
   即時、日時指...
性能向上のためにキャッシュを活用したい!


 S2Caching                            http://s2caching.sandbox.seasar.org/

     メソッドの戻り値をキャッシュするイ...
Excelを手軽に生成したい!


Fisshplate        http://fisshplate.sandbox.seasar.org/ja/

    Excelテンプレートエンジン
    ExcelにVelocityのような...
携帯電話向けのWebアプリケーションを開発したい!


Mobylet               http://mobylet.seasar.org/

   携帯Web向けのフレームワーク
   絵文字、文字コードの自動変換
   画...
Eclipseプラグイン
     プラグイン                              説明

Dolteng          Seasar2を使用したプロジェクトの雛形を作成
                 SAStru...
Seasarプロジェクトのリソース
   メーリングリスト
       http://ml.seasar.org/
   Subversionリポジトリ
       https://www.seasar.org/svn/
    ...
Seasar2活用のために


          Seasar2徹底入門
          SAStruts/S2JDBC対応

          ISBN:978-4798121505
          価格:3,990
      ...
Upcoming SlideShare
Loading in …5
×

Seasarプロジェクト徹底攻略

12,405 views
12,127 views

Published on

2010/6/13 Java Cloud Meeting Tokyo 2010 x Seasar Conference 2010

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
12,405
On SlideShare
0
From Embeds
0
Number of Embeds
348
Actions
Shares
0
Downloads
54
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Seasarプロジェクト徹底攻略

  1. 1. Seasarプロジェクト徹底攻略 NTTデータ先端技術株式会社 竹添 直樹
  2. 2. Profile  たけぞう  Blog: http://d.hatena.ne.jp/takezoe/  Twitter: @takezoen  OSS Activity: Project Amateras The Apache Software Foundation The Seasar Project
  3. 3. Purpose  Seasarプロジェクトでは様々なプロダクトが開 発されています  ただし、開発がアクティブに行われていないも のも多く、機能・品質にもバラつきがあります  これらのプロダクトの中から“仕事で使える”プ ロダクトを紹介します
  4. 4. 突然ですが… Seasar2徹底入門 SAStruts/S2JDBC対応 ISBN:978-4798121505 価格:3,990 出版社:翔泳社
  5. 5. Seasar本の歴史
  6. 6. Seasar入門 はじめてのDI&AOP
  7. 7. Seasar 2.4登場
  8. 8. Seasar2によるスーパーアジャイルなWeb開発
  9. 9. SAStruts+S2JDBC 登場
  10. 10. Seasar2入門 JavaによるはじめてのWebアプリケーション開発
  11. 11. SAStruts、S2JDBCの 機能改善による変化
  12. 12. 最新の情報をカバーした 実践的な書籍が必要だ!
  13. 13. そしてSeasar2徹底入門 Seasar2、SAStruts、S2JDBCは安定期に S2Container、周辺プロダクトも解説 末永く使える一冊に!
  14. 14. Seasar3登場?
  15. 15. 本当にありがとう ございました。
  16. 16. 本題に戻ります
  17. 17. Purpose  Seasarプロジェクトでは様々なプロダクトが開 発されています  ただし、開発がアクティブに行われていないも のも多く、機能・品質にもバラつきがあります  これらのプロダクトの中から“仕事で使える”プ ロダクトを紹介します
  18. 18. Web Framework  (SAStruts)  Cubby  Mayaa  Teeda  Ymir  S2JSF  S2Struts
  19. 19. 学習コストの低いWebフレームワークを使いたい! Cubby http://cubby.seasar.org/  Servlet/JSPベースのシンプルなWebフレームワーク  Seasar2だけでなく、Spring Framework、Google Guiceと連 携が可能 public class HelloAction extends Action { ・・・ <t:form action="message" value="${action}"> @RequestParameter あなたの名前: public String name; <t:input type="text" name="name"/> <input type="submit" value="送信"/> public ActionResult index() { </t:form> return new Forward("input.jsp"); ・・・ } input.jsp public ActionResult message() { return new Forward("result.jsp"); ・・・ } こんにちは、${action.name}さん。 } ・・・ アクション result.jsp
  20. 20. プログラマとデザイナを分業したい! Mayaa http://mayaa.seasar.org/  Tapestry、S2JSFの系譜を受け継ぐHTMLテンプレートエンジン  デザインとロジックの完全な分離を実現  SAStrutsやCubby等と組み合わせて利用可能 HTMLファイル <html> <body> <span id="message">dummy message</span> </body> </html> <html> <body>Hello Mayaa!</body> Mayaaファイル </html> <?xml version="1.0" encoding="UTF-8"?> <m:mayaa xmlns:m="http://mayaa.seasar.org"> <m:write m:id="message" value="Hello Mayaa!" /> </m:mayaa>
  21. 21. DataBase Access Framework  (S2JDBC)  DBFlute  Doma  Kuina  S2Dao
  22. 22. 現場でトラブルになりにくいO/Rマッパを使いたい! DBFlute http://dbflute.sandbox.seasar.org/  Apache Torque/S2Daoを参考に開発された「現 場指向」のO/Rマッピングフレームワーク  自動生成を活用しておりDB変更に強い  自由度よりも安全性を重視  Condition Bean  外出しSQL(2Way SQL) 詳しくはDBFluteのセッションで! S505 15:00-
  23. 23. S2JDBCもいいけどS2Daoもいいよね! Doma http://doma.seasar.org/  APT(Annotation Processing Tool)を使用したO/Rマッパ  S2Daoに似ているが、以下の点を改良  実行時にAOPで処理を行うのではなく、コンパイル時にDAOのソースを生成  命名規約ではなくアノテーションによる明示的な指定  2waySQLの文法を間違いにくいよう改善  ドメインクラスへの対応  コンパイル時にAPTによるエラーチェックが可能 @Dao(config = AppConfig.class) public interface EmployeeDao { @Select Employee selectById(Integer employeeId); コンパイル時に DAOの実装を APTで処理 自動生成 @Update int update(Employee employee); } DAOのインターフェース
  24. 24. Remoting/Communications  S2BlazeDS  S2Axis  S2JMS  S2Flex  S2RMI
  25. 25. Flex/AIRからSeasar2のコンポーネントを呼び出したい! S2BlazeDS http://s2blazeds.seasar.org/  BlazeDSでFlexからS2Container管理下のコンポーネントを呼 び出し可能  HOT deploy対応 <?xml version="1.0" encoding="UTF-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#FFFFFF"> <mx:RemoteObject id="srv" destination="productService"/> <mx:DataGrid dataProvider="{srv.getProducts.lastResult}" width="100%" height="100%"/> <mx:Button label="Get Data" click="srv.getProducts()"/> サーバ側 </mx:Application> public class ProductService { クライアント(Flex)側 public JdbcManager jdbcManager; public List<Product> getProducts() { return jdbcManager.from(Product.class).getResultList(); } ... }
  26. 26. Webサービスを簡単に作成したい! S2Axis http://s2axis.seasar.org/ja/  POJOをWebサービス化  クライアント側もサポート  JAX-WS、RESTにも対応 public interface Echo { String echo(int id, String message); } diconファイルに登録する際に metaタグでAxisにデプロイする public class EchoImpl implements Echo { public String echo(int id, String message) { Webサービスであることを指定 return "[id = " + id + "] " + message; } } <component name="Echo" class="org.seasar.remoting.axis2.examples.ex01.EchoImpl"> <meta name="axis-service"/> </component> http://localhost:8080/s2axis/services/Echo でアクセス可能
  27. 27. Libraries  S2Mai  S2CSV  S2Chronos  S2Caching  Fisshplate
  28. 28. メールを送信したい! S2Mai http://s2mai.sandbox.seasar.org/ja/  送信先等の設定をdiconファイルで管理可能  S2Daoのメール版(Maiインターフェースを作成するだけでメール送信可能)  Velocity or FreeMarkerでメール内容のテンプレートを記述可能 メールテンプレートに 渡すパラメータ Mai DTO インターフェース SMTPサーバの情報等 送信するメールの内容 diconファイル メールテンプレート
  29. 29. CSVファイルの入出力を行いたい! S2CSV http://s2csv.sandbox.seasar.org/  CSVとJavaBeanをアノテーションでマッピング  アノテーションで読み込んだCSV値のバリデーションも可能 @CSVEntity(header=false) public class DeptCsv { @CSVColumn(columnIndex=0) public Long id; @CSVRequired @CSVColumn(columnIndex=1) public Integer deptNo; @CSVColumn(columnIndex=2) public String deptName; @CSVColumn(columnIndex=3) public String loc; }
  30. 30. アプリケーションに定期処理を組み込みたい! S2Chronos http://s2chronos.sandbox.seasar.org/  タスクスケジューラ  即時、日時指定、cron形式など様々なトリガーが利用可能  アノテーションでトリガやタスクメソッドの順序を指定可能  動的トリガを利用することでトリガ設定の外部化も可能  Webアプリにも組み込み可能 @Task @CronTrigger(expression = "0 */1 * * * ?") public class BasicTask { public void doExecute() { ... } }
  31. 31. 性能向上のためにキャッシュを活用したい! S2Caching http://s2caching.sandbox.seasar.org/  メソッドの戻り値をキャッシュするインターセプターを提供  メソッドの引数ごとに戻り値をキャッシュする  アノテーションでの適用も可能  バックエンドにはEhcacheを使用 diconファイルでの指定 <component class="jp.sf.amateras.samples.service.CalcService"> <aspect pointcut="calculateSomething">callCache</aspect> </component> @CallCache(componentName="callCache") public String calculateSomething(String condition) { .... } アノテーションでの指定
  32. 32. Excelを手軽に生成したい! Fisshplate http://fisshplate.sandbox.seasar.org/ja/  Excelテンプレートエンジン  ExcelにVelocityのような記述が可能
  33. 33. 携帯電話向けのWebアプリケーションを開発したい! Mobylet http://mobylet.seasar.org/  携帯Web向けのフレームワーク  絵文字、文字コードの自動変換  画像のリサイズ  デコメール対応メール送信  セッション管理機能  他のWebフレームワークと組み合わせて利用 詳しくはMobyletのセッションで! S603 15:00-
  34. 34. Eclipseプラグイン プラグイン 説明 Dolteng Seasar2を使用したプロジェクトの雛形を作成 SAStruts、S2JDBCなど様々なフレームワークの組み合わせに対応 Kijimuna Diconファイルを編集するためのエディタ SAStrutsPlugin WTPにSAStruts向けの機能を追加 Matatabi MayaaのmayaaファイルやHTMLファイルの編集を支援 S2JUnit4Plugin テストケース、テスト対象クラス、テスト用diconファイルの相互ジャンプ DbLauncher H2データベースをEclipse上から起動 WebLauncher Winstone(軽量サーブレットコンテナ)をEclipse上から起動 Doma Tools Domaでの開発を支援 EMecha DBFluteでの開発を支援
  35. 35. Seasarプロジェクトのリソース  メーリングリスト  http://ml.seasar.org/  Subversionリポジトリ  https://www.seasar.org/svn/  http://www.seasar.org/source/browse/  Mavenリポジトリ  http://maven.seasar.org/  Eclipseプラグインの更新サイト  http://www.seasar.org/updates.html  JIRA(課題管理)  https://www.seasar.org/issues/secure/Dashboard.jspa  Hudson(継続的ビルド)  https://www.seasar.org/hudson/  Wiki  http://www.seasar.org/wiki/
  36. 36. Seasar2活用のために Seasar2徹底入門 SAStruts/S2JDBC対応 ISBN:978-4798121505 価格:3,990 出版社:翔泳社

×