Your SlideShare is downloading. ×

Seasarプロジェクト徹底攻略

11,614

Published on

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

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
11,614
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
52
Comments
0
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Seasarプロジェクト徹底攻略 NTTデータ先端技術株式会社 竹添 直樹
  • 2. Profile  たけぞう  Blog: http://d.hatena.ne.jp/takezoe/  Twitter: @takezoen  OSS Activity: Project Amateras The Apache Software Foundation The Seasar Project
  • 3. Purpose  Seasarプロジェクトでは様々なプロダクトが開 発されています  ただし、開発がアクティブに行われていないも のも多く、機能・品質にもバラつきがあります  これらのプロダクトの中から“仕事で使える”プ ロダクトを紹介します
  • 4. 突然ですが… Seasar2徹底入門 SAStruts/S2JDBC対応 ISBN:978-4798121505 価格:3,990 出版社:翔泳社
  • 5. Seasar本の歴史
  • 6. Seasar入門 はじめてのDI&AOP
  • 7. Seasar 2.4登場
  • 8. Seasar2によるスーパーアジャイルなWeb開発
  • 9. SAStruts+S2JDBC 登場
  • 10. Seasar2入門 JavaによるはじめてのWebアプリケーション開発
  • 11. SAStruts、S2JDBCの 機能改善による変化
  • 12. 最新の情報をカバーした 実践的な書籍が必要だ!
  • 13. そしてSeasar2徹底入門 Seasar2、SAStruts、S2JDBCは安定期に S2Container、周辺プロダクトも解説 末永く使える一冊に!
  • 14. Seasar3登場?
  • 15. 本当にありがとう ございました。
  • 16. 本題に戻ります
  • 17. Purpose  Seasarプロジェクトでは様々なプロダクトが開 発されています  ただし、開発がアクティブに行われていないも のも多く、機能・品質にもバラつきがあります  これらのプロダクトの中から“仕事で使える”プ ロダクトを紹介します
  • 18. Web Framework  (SAStruts)  Cubby  Mayaa  Teeda  Ymir  S2JSF  S2Struts
  • 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. プログラマとデザイナを分業したい! 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. DataBase Access Framework  (S2JDBC)  DBFlute  Doma  Kuina  S2Dao
  • 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. 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. Remoting/Communications  S2BlazeDS  S2Axis  S2JMS  S2Flex  S2RMI
  • 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. 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. Libraries  S2Mai  S2CSV  S2Chronos  S2Caching  Fisshplate
  • 28. メールを送信したい! S2Mai http://s2mai.sandbox.seasar.org/ja/  送信先等の設定をdiconファイルで管理可能  S2Daoのメール版(Maiインターフェースを作成するだけでメール送信可能)  Velocity or FreeMarkerでメール内容のテンプレートを記述可能 メールテンプレートに 渡すパラメータ Mai DTO インターフェース SMTPサーバの情報等 送信するメールの内容 diconファイル メールテンプレート
  • 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. アプリケーションに定期処理を組み込みたい! S2Chronos http://s2chronos.sandbox.seasar.org/  タスクスケジューラ  即時、日時指定、cron形式など様々なトリガーが利用可能  アノテーションでトリガやタスクメソッドの順序を指定可能  動的トリガを利用することでトリガ設定の外部化も可能  Webアプリにも組み込み可能 @Task @CronTrigger(expression = "0 */1 * * * ?") public class BasicTask { public void doExecute() { ... } }
  • 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. Excelを手軽に生成したい! Fisshplate http://fisshplate.sandbox.seasar.org/ja/  Excelテンプレートエンジン  ExcelにVelocityのような記述が可能
  • 33. 携帯電話向けのWebアプリケーションを開発したい! Mobylet http://mobylet.seasar.org/  携帯Web向けのフレームワーク  絵文字、文字コードの自動変換  画像のリサイズ  デコメール対応メール送信  セッション管理機能  他のWebフレームワークと組み合わせて利用 詳しくはMobyletのセッションで! S603 15:00-
  • 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. 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. Seasar2活用のために Seasar2徹底入門 SAStruts/S2JDBC対応 ISBN:978-4798121505 価格:3,990 出版社:翔泳社

×