#topicpath ---- //ここにコンテンツを記述します。 #contents 先にhibernate-spring.xmlにDAO関連の記述の説明をしましたが、ちょっとSpringでやったことをまとめておきます。 **データベース関連 [#fbf52ea9] beans.xmlはXDocletから自動生成されるけど、SpringのdataSourceやsessionFactoryなどはXDoclet向けの記述を書く場所がわからなかったので、とりあえず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に書いておきます。 ***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(おもしろかった[2],そうでもない[0]) #vote(おもしろかった[3],そうでもない[0]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}