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