1. 程式人生 > >Spring+Hibernate整合配置

Spring+Hibernate整合配置

    在公司一直沒有什麼機會直接折騰SSH“原生態”的SSH當今比較流行的輕量級的框架,用著公司的框架也是鬱悶異常,今天沒事整整原來用過的一個專案的配置,發現就算是自己曾經用過的東西,如果較長時間不返過去重新學習,許多你半熟不熟的知識就是異常陌生。下面貼上我的一些配置,暫且權當備份吧。

web.xml

作為Java web專案最為重要的配置檔案,下面我們看看我的一些相關配置。

 <!-- 配置Spring上下文 -->

  <context-param>

  <param-name>contextConfigLocation</param-name>

  <param-value>classpath:spring*.xml</param-value>

  </context-param>

  <!-- 啟動 Spring 監聽器 -->

  <listener>

  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

  <!-- 編碼過濾器 -->

  <filter>

  <filter-name>characterEncodingFilter</filter-name>

  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

  <init-param>

  <param-name>encoding</param-name>

  <param-value>UTF-8</param-value>

  </init-param>

  <init-param>

  <param-name>forceEncoding</param-name>

  <param-value>true</param-value>

  </init-param>

  </filter>

  <filter-mapping>

  <filter-name>characterEncodingFilter</filter-name>

  <url-pattern>/*</url-pattern>

  </filter-mapping>

  <!-- 配置 OpenSessionInView -->

  <filter>

<filter-name>hibernateOpenSessionInView</filter-name>

<filter-class>com.geek.core.dao.OpenSessionInView</filter-class>

<init-param>

<param-name>excludeSuffixs</param-name>

<param-value>js,css,jpg,gif,jpeg,mp3</param-value>

</init-param>

  </filter>

  <filter-mapping>

  <filter-name>hibernateOpenSessionInView</filter-name>

  <url-pattern>*.do</url-pattern>

  </filter-mapping>

  <!-- 配置 Spring Servlet 分發器 -->

  <servlet>

  <servlet-name>spring</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <init-param>

  <param-name>contextConfigLocation</param-name>

  <param-value>classpath:spring-action.xml</param-value>

  </init-param>

  </servlet>

  <servlet-mapping>

  <servlet-name>spring</servlet-name>

  <url-pattern>*.do</url-pattern>

  </servlet-mapping>

Spring的相關配置檔案,Hibernate也共用了Spring的配置檔案

spring-action.xml

<!-- Web層Action類掃描 -->

<context:component-scan base-package="com.geek.core.web.action" />

<!-- Action類註解配置 -->

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>

<!-- 檢視解析器配置 -->

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>

<property name="prefix" value="/"></property>

</bean>

spring-persistence.xml

<!-- 配置註解注入 -->

<context:annotation-config />

<!-- 持久層類所在包掃描-->

<context:component-scan base-package="com.geek.core.dao.impl" />

spring-service.xml

<!-- 配置 Service 類掃描包 -->

<context:component-scan base-package="com.geek.core.service.impl" />

spring.xml [Hibernate共用]

<!-- MySQL 資料來源配置 -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName"value="com.mysql.jdbc.Driver"></property>

<property name="url"value="jdbc:mysql://127.0.0.1:3306/smile"></property>

<property name="username" value="smile"></property>

<property name="password" value="smile"></property>

</bean>

<!-- Session 工廠配置 -->

<bean id="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

<property name="dataSource"><ref bean="dataSource"></ref></property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

<prop key="hibernate.hbm2ddl.auto">update</prop>

</props>

</property>

<!-- ORM [註解] 配置實體包 -->

<property name="packagesToScan">

<list>

<value>com.geek.core.pojo</value>

</list>

</property>

</bean>

<!-- 配置事務管理器 -->

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

<!-- 使用註解配置事務 -->

<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

注:在配置過程中也出現了相關的錯誤,組要是schema引入的問題,如context和tx的引入,所以需多加註意。

<beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="

http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 

http://www.springframework.org/schema/tx 

http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 

http://www.springframework.org/schema/context 

http://www.springframework.org/schema/context/spring-context-3.0.xsd">

…………

:)