Spring监管下的Hibernate配置文件
来源:互联网 发布:美工课小房子教案 编辑:程序博客网 时间:2024/05/18 06:25
今天看了看别人的程序,用的是SSH搭建的,自己回想了下感觉如果采用注解的话那么Hibernate的配置文件hibernate.cfg.xml是还需要的,而*.hbm.xml则可以被注解所替代的,结果确是我没有找到我想要的hibernate.cfg.xml.其实想想自己对SSH环境的搭建理解的还不是很透彻.仅仅是看着人家怎么搭建自己跟着怎么搭建而已.所以对Spring和Hibernate的整合配置文件稍微整理了下.
spring对hibernate配置文件hibernate.cfg.xml的集成相当好,可以在Spring中配置Hibernate的SessionFactory从而取代Hibernate.cfg.xml和HibernateSessionFactory.java,所以在Spring和Hibernate集成的时候我们关注的是*.hbm.xml是否还需要.当然我们可以选择继续使用*.hbm.xml或者不使用这种配置文件,改用注解的方式.
继续使用Hibernate的映射文件*.hbm.xml时扫描映射文件的方法
Spring集成Hibernate时去掉了Hibernate.cfg.xml,此时如果还继续使用Hibernate的映射文件*.hbm.xml的话,在配置Hibernate的SessionFactory时就要配置以何种方式寻找Hibernate映射文件*.hbm.xml将成为此配置文件的关键
此时spring中配置SessionFactorybean时它对应的class应为org.springframework.orm.hibernate.LocalSessionFactoryBean
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /><!-- 引用数据源 --> <property name="mappingDirectoryLocations"> <list> <value>classpath:com/cn/nos/services/pojo/</value><!-- 加载hibernate的映射文件*.hbm.xml --> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <!--<prop key="hibernate.current_session_context_class">thread</prop>--> </props> </property> </bean>
LocalSessionFactoryBean有好几个属性用来查找hibernate映射文件:mappingResources、mappingLocations、mappingDirectoryLocations与mappingJarLocations
他们的区别:
mappingResources:指定classpath下具体映射文件名
<property name="mappingResources"> <value>petclinic.hbm.xml </value> </property>
mappingLocations:可以指定任何文件路径,并且可以指定前缀:classpath、file等
<property name="mappingLocations"> <value>/WEB-INF/petclinic.hbm.xml </value> </property> <property name="mappingLocations"> <value>classpath:/com/company/domain/petclinic.hbm.xml </value> </property>
也可以用通配符指定,'*'指定一个文件(路径)名,'**'指定多个文件(路径)名,例如:
<property name="mappingLocations"> <value>classpath:/com/company/domainmaps/*.hbm.xml </value> </property>
上面的配置是在com/company/domain包下任何maps路径下的hbm.xml文件都被加载为映射文件
mappingDirectoryLocations:指定映射的文件路径
<property name="mappingDirectoryLocations"> <list> <value>WEB-INF/HibernateMappings</value> </list> </property>
也可以通过classpath来指出
<property name="mappingDirectoryLocations"> <list> <value>classpath:/XXX/package/</value> </list> </property>
mappingJarLocations:指定加载的映射文件在jar文件中
使用注解形式,而去掉*.hbm.xml的Hibernate映射文件 时配置的方法
Spring集成Hibernate时去掉了Hibernate.cfg.xml,此时如果使用jpa注解形式的pojo对象,而去掉Hibernate的映射文件*.hbm.xml的话,在配置Hibernate的SessionFactory时就要配置以何种方式寻找jpa注解形式的pojo映射对象
此时spring中配置SessionFactorybean时它对应的class应为org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
例如:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /><!-- 引用数据源 --> <property name="packagesToScan"> <list> <value>com.cn.nos.services.pojo*</value><!-- 加载hibernate的jpa注解形式的实体类 --> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <!--<prop key="hibernate.current_session_context_class">thread</prop>--> </props> </property> </bean>
AnnotationSessionFactoryBean中查找jpa注解形式的pojo映射对象的属性有:annotatedClasses、packagesToScan
annotatedClasses:指定classpath下指定的注解映射实体类的类名
<property name="annotatedClasses"> <list> <value>com.test.ObjectBean</value><!-- 可以在这个list中配置多个 --> </list></property>
packagesToScan指定映射文件的包名
<property name="packagesToScan"> <list> <value>com.cn.nos.services.pojo*</value><!-- 加载hibernate的jpa注解形式的实体类 --> </list></property>
这些配置文件之间的关系有助于我们更好的理解框架如何工作,让我们使用框架更加的得心应手.
- Spring监管下的Hibernate配置文件
- spring+hibernate的配置文件示例
- SSH下的Spring配置文件
- Spring配置文件关于hibernate的配置
- 一份struts+spring+hibernate的传统配置文件
- Struts+spring+hibernate集成的配置文件
- spring整合hibernate的一个配置文件
- Spring+hibernate整合常用的配置文件
- struts2+spring+hibernate整合的配置文件
- 整合hibernate,JBPM.4.4的Spring配置文件
- Struts2+spring+hibernate的配置文件配置
- struts2、Spring、Hibernate的整合-配置文件
- springMVC+hibernate+spring干净的一个配置文件
- 不使用Maven的情况下,搭建Spring+Struts+Hibernate框架 - jar包与配置文件
- hibernate+spring配置文件
- spring+struts+hibernate配置文件
- spring+hibernate事务管理配置文件
- spring+hibernate配置文件
- linux 安装php 不安装mysql 需要支持mysql mysqli mysql-pdo
- Lintcode(5)-最长公共子串
- 您尝试打开的文件XXX.xls的格式与文件扩展名制定的格式不一致
- 显卡 : 什么是渲染管线
- 一个简单的带游标的存储过程
- Spring监管下的Hibernate配置文件
- 游戏设计的艺术:一本透镜的书——第八章 游戏是为玩家做的
- JS 身份证号校验 年龄校验
- Eas Bos 如何往kdlabel载入自己的图片
- 菲律宾副总统与阿基诺彻底闹掰 国内一片大乱
- thinkphp无法正常使用frameset
- 【操作系统】互斥与同步
- sqlplus登录Oracle时ORA-01017: invalid username/password; logon denied的错误
- BIRT实现组内跨行计算