beans.xmlはXDocletから自動生成されるけど、SpringのdataSourceやsessionFactoryなどはタグの各場所がわからなかったので、とりあえずhibernate-spring.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に書いておきます。
とりあえず、要件や発生した課題は以下の感じです。
<mapping class="nu.mine.kino.rss.hibernate.Rss" />を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が書いてあるクラスファイルを指定しました。
この記事は
現在のアクセス:7359