- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
----
//ここにコンテンツを記述します。
#contents
先にhibernate-spring.xmlにDAO関連の記述の説明をしましたが、ちょっとSpringでやったことをまとめておきます。
**データベース関連 [#fbf52ea9]
beans.xmlはXDocletから自動生成されるけど、SpringのdataSourceやsessionFactoryなどはタグの各場所がわからなかったので、とりあえずhibernate-spring.xmlってファイルを作って読み込ませることにしました。ちなみに、複数のファイルを読み込ませるには
beans.xmlはXDocletから自動生成されるけど、SpringのdataSourceやsessionFactoryなどはタグの各場所がわからなかったので、とりあえずhibernate-spring.xmlってファイルを作って読み込ませることにしました。ちなみに、複数のファイルを読み込ませるにはweb.xmlで以下の内容を記述しておきます。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/beans.xml,
/WEB-INF/classes/hibernate-spring.xml
</param-value> ここは一行で。
</context-param>
をXDocletのマージファイル web-settings.xmlに書いておきます。
ちなみにこのようなソースファイルに記述するものではないモノについては、XDocletのマージファイル web-settings.xmlに書いておきます。
***hibernate-spring.xml [#m1aa0010]
とりあえず、要件や発生した課題は以下の感じです。
-WEBコンテナのDataSourceを使いたい
-Hibernate3.xを使いたい
-できれば、Hibernate Annotation使って楽したい(*.hbm.xml作りたくない)
-でも、通常hibernate.cfg.xmlで書く
<mapping class="nu.mine.kino.rss.hibernate.Rss" />
をhibernate-spring.xmlで書く書き方がわからない
いろいろ調べて以下のように行くことにしました。
-hibernate-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- WEBコンテナのDataSourceを使う設定 -->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/MySqlDS</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="configLocation">
<value>/WEB-INF/hibernate.cfg.xml</value>
<!-- Mappingクラスだけ既存ファイルに書く -->
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
</bean>
</beans>
このファイルはsource直下など、クラスパスが通っているところに置いておきます。指定されている/WEB-INF/hibernate.cfg.xmlは
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<mapping class="nu.mine.kino.rss.hibernate.Rss" />
</session-factory>
</hibernate-configuration>
とAnnotationが書いてあるクラスファイルを指定しました。
**その他のJavaBeansの設定 [#k5f37198]
その他のJavaBeansに関しては、XDocletを使ってEclipse上で自動生成するようにしています。XDocletで生成されるファイルはbeans.xmlとしました。たとえばPingClientだったら、クラスコメントに
/**
* PingサーバにweblogUpdates.pingを打つクライアントです。
* @spring.bean id = "pingClient"
*/
んで、エンドポイントを決めるセッターメソッドに
/**
* @spring.property list =
* "http://localhost:8080/PingWeb/PingReceiver,
* http://ping.cocolog-nifty.com/xmlrpc,
* http://ping.bloggers.jp/rpc/,
* http://www.blogpeople.net/servlet/weblogUpdates,
* http://ping.myblog.jp"
*/ ↑ 実際は改行しない
public void setEndpointURLList(List endpointURLLis
this.endpointURLList = endpointURLList;
}
と書いておきます。すると以下のようなbeans.xmlが生成されます。
<bean
id="pingClient"
class="nu.mine.kino.ping.PingClient"
>
<property name="endpointURLList">
<list>
<value>http://ping.cocolog-nifty.com/xmlrpc</value>
<value>http://localhost:8080/PingWeb/PingReceiver</value>
<value>http://ping.bloggers.jp/rpc/</value>
<value>http://www.blogpeople.net/servlet/weblogUpdates</value>
<value>http://ping.myblog.jp</value>
</list>
</property>
</bean>
----
この記事は
#vote(おもしろかった,そうでもない)
#vote(おもしろかった[1],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}