• 純国産DIコンテナ

diconファイル

インスタンスのライフサイクル

prototypeが今までのnewで作成するのと近い

http://s2container.seasar.org/2.4/ja/DIContainer.html#InstanceMode

読み込みルール

  • ファイル、クラスパスから取得可能。
  • 同一のdiconファイルでコンポーネントキー重複登録は実行時にエラーとなる
  • 別々のdiconファイルでコンポーネントキー重複登録は先に登録されたものが優先。

OGNLについて

  • diconで定義するプロパティにListやMapなどを設定したい場合は下記参照。

http://s2container.seasar.org/2.4/ja/ognl.html

<!-- Listをクラスのプロパティとして設定したいときは入れ子の中でproperty -->
<property name="list">{"green", "red", "blue"}</property>
<!-- Listを直接取得したいときはcomponent -->
<component name="list">{"green", "red", "blue"}</conponent>

Auto-Binding

org.seasar.framework.container.IllegalAutoBindingPropertyRuntimeException: [ESSR0080]クラスSomeClassのプロパティ(hogew)の自動設定に失敗しました

プロパティ名とクラス名があってないと上記Exceptionがでる。 あとActionとService以外でAutoBindingを使うとこのエラーが出る。ちゃんとdiconに登録すること

コンポーネントの自動登録

コンポーネント検索元をファイルシステム、JAR、その両方に設定できる。

  • FileSystemComponentAutoRegister
  • JarComponentAutoRegister
  • ComponentAutoRegister

Cool DeployとHot Deploy

切替

s2container.diconを変更する。

<include condition="#ENV == 'ut'" path="warmdeploy.dicon"/>

SAStruts

スーパアジャイルの略。設定ファイル不要でS2Strutsの後発ながら注目度抜群。

セットアップ

3.4.1を日本語化して、Tomcatプラグインを入れたものにダウンロード&解凍したものをインポートする。

基本ルール

  1. PATHINFOでactionを呼び出す。
  2. リクエストパラメータはActionのpublicフィールドに代入される(このときにvalidationルールをアノテーションにより指定可能)。ActionFormを指定することも可能で検証用メソッドなどActionに入れすぎると肥大化する場合はこちらに分離したほうが良いかも。
  3. 戻りのJSP名をリターンする。

publicフィールドとActionFormの優先度

publicフィールドとActionFormは併用可能。両方に同名フィールドがあった場合はpublicフィールドが優先されるようだ。ただしnullだった場合は使われない。 インプットの場合はpublicフィールドは無視されて、常にActionFormに入る。

S2Struts

SAStrusよりも前に出ている分ちと使いづらい点が目立つ。

S2Strutsの命名規約

Sample.doで呼び出すとすると

ActionSampleActionImpl
Service(Logic)SampleServiceImpl
DTO(ActionForm)SampleDTO
JSP(html)sample.jsp

S2DAO

データソースの定義はj2ee.diconに

	<component name="xaDataSource"
		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
		<property name="driverClassName">
			"org.postgresql.Driver"
		</property>
		<property name="URL">
			"jdbc:postgresql://rutake.ddo.jp:5432/hellodb"
		</property>
		<property name="user">"xxxxxx"</property>
		<property name="password">"xxxxxx"</property>
	</component>

S2JDBC

  • ログを出す
    		// TODO あとで削除
    		SqlLogRegistry sqlLogRegistry = SqlLogRegistryLocator.getInstance();
    		SqlLog sqlLog = sqlLogRegistry.getLast();
    		System.out.println(sqlLog.getCompleteSql());

S2JUnit4

http://s2container.seasar.org/2.4/ja/S2JUnit4.html

JUnit4のSeasar拡張版。

必要なもの

  1. s2junit4.dicon
  2. テスト実行クラスに@RunWith(Seasar2.class)
Counter: 31489, today: 5, yesterday: 6

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-12 (月) 15:33:57