首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Spring MVC + Spring + Hibernate 整合實戰(一):Maven 專案搭建與核心配置詳解

     編輯:Java 綜合教學

專案初始化與依賴管理

  1. 建立 Maven Web 專案,規範目錄結構。
  2. 在 pom.xml 引入核心依賴:spring-webmvc、spring-orm、spring-tx、hibernate-core、druid(連線池)、資料庫驅動(如 sqljdbc4)、jstl、servlet-api 等,統一版本號管理。

資料庫與 Hibernate 獨立配置檔

1. jdbc.properties(外部化連線參數)

jdbcUrl=jdbc:sqlserver://localhost:1433;DatabaseName=dbStudy
driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
username=sa
password=sql2008

優點:修改參數無需動 Spring XML,利於多環境部署。

2. hibernate.cfg.xml(Hibernate 原生屬性)

僅保留方言、SQL 顯示、格式化、DDL 策略、二級快取等純 Hibernate 屬性;資料源與映射檔交由 Spring 管理。

<property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>

Spring 核心配置(applicationContext.xml / spring.xml)

1. 掃描與註解支援

<context:annotation-config/>
<context:component-scan base-package="com.ympcSoft"/>
<context:property-placeholder location="classpath:jdbc.properties"/>

2. Druid 連線池配置

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
    <property name="driverClassName" value="${driverClass}"/>
    <property name="url" value="${jdbcUrl}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
    <!-- 池參數調優 -->
    <property name="initialSize" value="1"/>
    <property name="minIdle" value="1"/>
    <property name="maxActive" value="20"/>
    <property name="maxWait" value="60000"/>
    <property name="timeBetweenEvictionRunsMillis" value="60000"/>
    <property name="minEvictableIdleTimeMillis" value="300000"/>
    <property name="poolPreparedStatements" value="true"/>
    <property name="maxPoolPreparedStatementPerConnectionSize" value="20"/>
    <property name="filters" value="stat,log4j"/>
</bean>

3. SessionFactory 整合(兩種方式擇一)

方式 A:引用外部 hibernate.cfg.xml

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
    <property name="packagesToScan" value="com.ympcsoft.sys.domain"/>
</bean>

方式 B:Spring 內嵌 Hibernate 屬性(無需 hibernate.cfg.xml)

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
    <property name="packagesToScan" value="com.ympcsoft.sys.domain"/>
</bean>

4. 宣告式事務管理

<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>

在 Service 方法或類別加 @Transactional 即可自動管理事務邊界。

完整 spring.xml 範例

(整合上述所有 Bean 定義,命名空間宣告完整,含 context、tx、aop、beans)

後續擴展方向

  • Spring MVC DispatcherServlet 配置與視圖解析器。
  • Entity 類別與映射關係(@Entity、@Table、@OneToMany 等)。
  • DAO/Service 分層實作、分頁查詢封裝。
  • 攔截器、異常統一處理、國際化、檔案上傳等進階功能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved