<o:p> </o:p>
上面 package对应了POJO的包名,class对应了POJO类名,contract为POJO中一些较为Base类, property对应了POJO的属性。上面看到的像ANT中的${*}就是*.cmd.xml 中所定义的common meta data。通常来说*.cmd.xml中的alias同POJO的Class进行映射。Meta data 同Class中的property进行映射。更多的映射的细节在此不多讲。可以参考 Compass的中自带的Sample Petclinic来理解。<o:p></o:p>
<o:p> </o:p>
第三类:*.cfg.xml文件<o:p></o:p>
Compass的*.cfg.xml文件就和Hibernate的*.cfg.xml有些类似了。下面是一个*.cfg.xml文件的内容:<o:p></o:p>
<compass-core-configuration><o:p></o:p>
<compass> <o:p></o:p>
<setting name="compass.engine.connection">target/index</setting> <o:p></o:p>
<meta-data resource="org/compass/sample/library/library.cmd.xml" /> <o:p></o:p>
<mappings>
<class name="test.Author" />
</mappings><o:p></o:p>
</compass><o:p></o:p>
</compass-core-configuration><o:p></o:p>
上面<o:p></o:p>
<setting name="compass.engine.connection">target/index</setting> 指定了索引文件存放的路径。<o:p></o:p>
<meta-data resource="org/compass/sample/library/library.cmd.xml" /> 指定了*.cmd.xml文件存放的路径。<o:p></o:p>
<mappings><class name="test.Author" /></mappings>是对compass的mapping文件进行指定。Test.Author对应的文件是test/Author.cpm.xml.<o:p></o:p>
<compass>是对compass中的compass类进行的一些参数设置,这个compass是一个重量级的类,类似于Hibernate中SessionFactory.<o:p></o:p>
<o:p> </o:p>
当Hibernate同Spring进行整合后,Hibernate就不需要*.cfg.xml这个文件了,借而代之的是用Spring的配置文件来进行配置。同样,Compass同Spring进行整合后,*.cfg.xml也可以不需要了。比如如下的Spring配置。<o:p></o:p>
<!-- COMPASS START --><o:p></o:p>
<bean id="compass" class="org.compass.spring.LocalCompassBean"><o:p></o:p>
<property name="resourceLocations"><o:p></o:p>
<list><o:p></o:p>
<value>classpath:org/compass/sample/petclinic/petclinic.cmd.xml</value><o:p></o:p>
<value>classpath:petclinic.cpm.xml</value><o:p></o:p>
</list><o:p></o:p>
</property><o:p></o:p>
<property name="compassSettings"><o:p></o:p>
<props><o:p></o:p>
<prop key="compass.engine.connection">file://${user.home}/compass/petclinic</prop><o:p></o:p>
<prop key="compass.transaction.factory">org.compass.spring.transaction.SpringSyncTransactionFactory</prop><o:p></o:p>
</props><o:p></o:p>
</property><o:p></o:p>
<property name="transactionManager"><o:p></o:p>
<ref local="transactionManager" /><o:p></o:p>
</property><o:p></o:p>
</bean><o:p></o:p>
<bean id="hibernateGpsDevice" class="org.compass.spring.device.hibernate.SpringHibernate3GpsDevice"><o:p></o:p>
<property name="name"><value>hibernateDevice</value></property><o:p></o:p>
<property name="sessionFactory"><ref local="sessionFactory" /></property><o:p></o:p>
</bean><o:p></o:p>
<bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop"><o:p></o:p>
<property name="compass"><ref bean="compass" /></property><o:p></o:p>
<property name="gpsDevices"><o:p></o:p>
<list