现在的位置: 首页 > 综合 > 正文

spring 剑走偏锋 mappingDirectoryLocations来配置Hibernate映射文件

2017年12月06日 ⁄ 综合 ⁄ 共 1878字 ⁄ 字号 评论关闭

菜鸟 :

<!-- 把数据源注入给Session工厂 -->
<bean id="sessionFactory"
   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="dataSource">
    <ref bean="dataSource" />
   </property>
  <!-- 配置映射文件 -->
   <property name="mappingResources">
    <list>
     <value>com/alonely/vo/User.hbm.xml</value>
    </list>
   </property>
</bean>
<!-- 把Session工厂注入给hibernateTemplate -->
<!-- 解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立 HibernateCallback 对象,例如:load()、get()、save、delete()等方法。 -->

<bean id="hibernateTemplate"
   class="org.springframework.orm.hibernate3.HibernateTemplate">
   <constructor-arg>
    <ref local="sessionFactory" />
   </constructor-arg>
</bean>
<!-- 把DAO注入给Session工厂 -->
<bean id="userDAO" class="com.alonely.dao.UserDAO">
   <property name="sessionFactory">
    <ref bean="sessionFactory" />
   </property>
</bean>
<!-- 把Service注入给DAO -->
<bean id="userService" class="com.alonely.service.UserService">
   <property name="userDAO">
    <ref local="userDAO" />
   </property>
</bean>
<!-- 把Action注入给Service -->
<bean name="/user" class="com.alonely.struts.action.UserAction">
   <property name="userService">
    <ref bean="userService" />
   </property>
</bean>
</beans>

 

如果你的工程里有100多个表,你还想这么写吗

 

知道 mappingDirectoryLocations 是怎么回事的人

 

SpringapplicationContext.xml中配置映射文件的方法:
<property name="mappingResources">
    <list>
    <value>com/almaer/model/Person.hbm.xml</value>
    <value>com/almaer/model/Car.hbm.xml</value>
    <value>com/almaer/model/Engine.hbm.xml</value>
    <value>com/almaer/model/Toy.hbm.xml</value>
    </list>
</property>

比菜鸟聪明多了,只是功夫没到家

 

当配置文件变得越来越多,修改起来也越来越烦人,而且基于XML的配置也可能带来输入的错误,导致你可能因为一个字符的错误而找上半天

 

 

变态写法(个人有些鄙视):

现在,你只要指出文件夹就可以了,Spring会替你找出所有映射文件
<property name="mappingDirectoryLocations">
    <list>
       <value>WEB-INF/mappings</value>
    </list>
</property>
也可以通过classpath来指出
<property name="mappingDirectoryLocations">
     <list>
         <value>classpath:/my/package/</value>
     </list>
</property>
如果多人团队开发,不可能都放在一起的xml 还是分开放置比较好

 

抱歉!评论已关闭.