Successfully reported this slideshow.
Your SlideShare is downloading. ×

Seasarプロジェクト徹底攻略

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 36 Ad

More Related Content

Slideshows for you (20)

Similar to Seasarプロジェクト徹底攻略 (20)

Advertisement

More from takezoe (20)

Recently uploaded (20)

Advertisement

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 出版社:翔泳社

×