springのメモ
■springMVCの例外処理について
refs:
・springの3種類の例外ハンドリング方法を紹介します
・springMVCの例外ハンドリング
■springの外だしxml設定ファイルのbeanクラス定義方法を「beans:bean」から「bean」へ
<annotation-driven />
<mvc:annotation-driven />
refs:spring設定ファイルの記述を「beans:bean」から「bean」に変更する方法
■自サイト
refs
・springのシングルトン問題~mvcのスレッドセーフ,@Scope("prototype")
・spring tool suite,spring
■外だしのプロパティファイルなどを読み込む場合
・外だしxml設定ファイルで定義する。classpath/file
bean id="classpathProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:classpath.properties</value>
</list>
</property>
</bean>
<bean id="fileProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>file:${user.home}\Documents\GitHub\spring-classpath-file\src\main\resources\file.properties</value>
</list>
</property>
</bean>
refs:springMVCのclasspathとfileの違い
■spring,junitのテスト
・@RunWithと@ContextConfigurationでspring用のjunitを作成する
■springMVCの例外処理について
refs:
・springの3種類の例外ハンドリング方法を紹介します
・springMVCの例外ハンドリング
■springの外だしxml設定ファイルのbeanクラス定義方法を「beans:bean」から「bean」へ
<annotation-driven />
<mvc:annotation-driven />
refs:spring設定ファイルの記述を「beans:bean」から「bean」に変更する方法
■自サイト
refs
・springのシングルトン問題~mvcのスレッドセーフ,@Scope("prototype")
・spring tool suite,spring
■外だしのプロパティファイルなどを読み込む場合
・外だしxml設定ファイルで定義する。classpath/file
bean id="classpathProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:classpath.properties</value>
</list>
</property>
</bean>
<bean id="fileProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>file:${user.home}\Documents\GitHub\spring-classpath-file\src\main\resources\file.properties</value>
</list>
</property>
</bean>
refs:springMVCのclasspathとfileの違い
■spring,junitのテスト
・@RunWithと@ContextConfigurationでspring用のjunitを作成する
springのmvcのシングルトン問題について
ここが解りやすく書いてある。
refs:springのシングルトン問題を@Scopeを使って回避する
しかし初期設定がsingltonとかいかんだろ。これだからフレームワークは信用ならんとかいう評判が広まるんだな・
@Scopeの引数がprototypeと書いてあるけど、これはプロトタイプベースにするって意味?
プロトタイプベースとクラスベース(オブジェクトベース)についてはググればいくらでも情報は出てくる。
refs:そろそろきっちりJavaScriptクラスベースとプロトタイプベースの違い
ここが解りやすく書いてある。
refs:springのシングルトン問題を@Scopeを使って回避する
しかし初期設定がsingltonとかいかんだろ。これだからフレームワークは信用ならんとかいう評判が広まるんだな・
@Scopeの引数がprototypeと書いてあるけど、これはプロトタイプベースにするって意味?
プロトタイプベースとクラスベース(オブジェクトベース)についてはググればいくらでも情報は出てくる。
refs:そろそろきっちりJavaScriptクラスベースとプロトタイプベースの違い
jpaについてのメモがき。
refs
・wiki(jpa)
・JPA 2.0入門
・EJB3.0 の勉強 (8) Java Persistence API (JPA) を使ってみる。 (9)(10)もjpaについての内容
javax.persistenceパッケージはinterface。実装はhibernate,ebeanとか・・・かな?
■@OneToMany、@ManyToOne
外部リレーションについて。Oneが所有者側のentity,Manyが被所有者側のentity。
下にサンプル。ModelはなんかのORMのクラス。ebean,hibernateとか。
・所有者側のソース
public class ClassA extends Model {
~
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "classAObj")
public List<HiClassB> employeeGroups = new ArrayList<HiClassB>();
~
}
・被所有者側のソース
public class HiClassB extends Model {
~
@ManyToOne
@JoinColumn(name = "hoge_id")
public ClassA classAObj;
~
}
■eagerとlazyについて
上の(fetch = FetchType.EAGER
refs:LAZY フェッチ/EAGER フェッチ
全ての永続化フィールドに対して、Entity 生成時に読む込む(EAGER フェッチ)かアクセスする際に初めて読み込む(LAZY フェッチ)かを指定できます。指定しない場合、以下のアノテーションが指定されたフィールドは LAZY フェッチがデフォルトとなります。
@OneToMany (1 対多の関連を表すフィールドに付ける)
@ManyToMany (多対多の関連を表すフィールドに付ける)
それ以外は EAGER フェッチがデフォルトです。本ページのサンプルコードでは全てのフィールドが EAGER フェッチとなります。フェッチタイプを明示的に指定する場合は、以下の様に指定します。
だそう・・・
■@OneToMangeのmappedBy属性
refs:2.6.3 OneToMange /
また,双方向の関係にする場合は,非所有者側に必ずmappedBy属性を指定してください。
mappedBy 任意 被所有者側のエンティティクラスの要素に付与し,所有者側のエンティティクラスで関係を保持しているフィールドまたはプロパティの名前を指定する属性です。
説明
被所有者側のエンティティクラスの要素に付与し,所有者側のエンティティクラスで関係を保持しているフィールドまたはプロパティの名前を指定する属性です。
この属性を指定した場合,関係は双方向になります。
だそう・・・
refs
・wiki(jpa)
・JPA 2.0入門
・EJB3.0 の勉強 (8) Java Persistence API (JPA) を使ってみる。 (9)(10)もjpaについての内容
javax.persistenceパッケージはinterface。実装はhibernate,ebeanとか・・・かな?
■@OneToMany、@ManyToOne
外部リレーションについて。Oneが所有者側のentity,Manyが被所有者側のentity。
下にサンプル。ModelはなんかのORMのクラス。ebean,hibernateとか。
・所有者側のソース
public class ClassA extends Model {
~
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "classAObj")
public List<HiClassB> employeeGroups = new ArrayList<HiClassB>();
~
}
・被所有者側のソース
public class HiClassB extends Model {
~
@ManyToOne
@JoinColumn(name = "hoge_id")
public ClassA classAObj;
~
}
■eagerとlazyについて
上の(fetch = FetchType.EAGER
refs:LAZY フェッチ/EAGER フェッチ
全ての永続化フィールドに対して、Entity 生成時に読む込む(EAGER フェッチ)かアクセスする際に初めて読み込む(LAZY フェッチ)かを指定できます。指定しない場合、以下のアノテーションが指定されたフィールドは LAZY フェッチがデフォルトとなります。
@OneToMany (1 対多の関連を表すフィールドに付ける)
@ManyToMany (多対多の関連を表すフィールドに付ける)
それ以外は EAGER フェッチがデフォルトです。本ページのサンプルコードでは全てのフィールドが EAGER フェッチとなります。フェッチタイプを明示的に指定する場合は、以下の様に指定します。
だそう・・・
■@OneToMangeのmappedBy属性
refs:2.6.3 OneToMange /
また,双方向の関係にする場合は,非所有者側に必ずmappedBy属性を指定してください。
mappedBy 任意 被所有者側のエンティティクラスの要素に付与し,所有者側のエンティティクラスで関係を保持しているフィールドまたはプロパティの名前を指定する属性です。
説明
被所有者側のエンティティクラスの要素に付与し,所有者側のエンティティクラスで関係を保持しているフィールドまたはプロパティの名前を指定する属性です。
この属性を指定した場合,関係は双方向になります。
だそう・・・
javaのjsonライブラリといったら、jsonicかjacksonだと思う。
jsonicは下からダウンロードできる
・jsonicのsourceforge
落としたファイルはjsonic-1.3.0.zip。なかにはソースとjsonic.1.3.0.jarが入っていた。jarはpom.xmlファイルがあったからmavenプロジェクトだと思う。
jacksonは下からダウンロードできる。
・jacksonDownload
Downloads, 2.xのところから以下の3つのjarファイルをダウンロード(2013/10/27時点)
・Core(jackson-core-2.2.0.jar)
・Annotations(jackson-annotations-2.2.0.jar)
・Databind(jackson-databind-2.2.0.jar)
refs
・Java:Jacksonで受信したJSONをパースする手順まとめ
・Jackson vs JSONIC、結果はJacksonの圧勝
ちなみに上の結果はjacksonの圧勝というサイトと同じソースで試してみたけど、jsonicの方が1.5倍くらい早かった。それぞれのバージョンは上で書いた通り。
あと、spring.mavenでjsonicの利用
refs:JSONICを使ってRESTFullなAPIを作ろう
jsonicは下からダウンロードできる
・jsonicのsourceforge
落としたファイルはjsonic-1.3.0.zip。なかにはソースとjsonic.1.3.0.jarが入っていた。jarはpom.xmlファイルがあったからmavenプロジェクトだと思う。
jacksonは下からダウンロードできる。
・jacksonDownload
Downloads, 2.xのところから以下の3つのjarファイルをダウンロード(2013/10/27時点)
・Core(jackson-core-2.2.0.jar)
・Annotations(jackson-annotations-2.2.0.jar)
・Databind(jackson-databind-2.2.0.jar)
refs
・Java:Jacksonで受信したJSONをパースする手順まとめ
・Jackson vs JSONIC、結果はJacksonの圧勝
ちなみに上の結果はjacksonの圧勝というサイトと同じソースで試してみたけど、jsonicの方が1.5倍くらい早かった。それぞれのバージョンは上で書いた通り。
あと、spring.mavenでjsonicの利用
refs:JSONICを使ってRESTFullなAPIを作ろう