SSH整合终结版(一)

本文主要讨论Spring2.5+Hibernate3.2+Struts1.2.9的整合。

人们通常讲“一口吃不成胖子”,SSH的整合也是一样的,最好是按步骤一步一步来。

整合之前必需的工作是将Spring、Hibernate和Struts所需的jar文件准备好(为文章叙述更为调理,这步工作不在此赘述,详情请看作者的另一篇日志《SSH整合所需jar文件的下载》)。本项目采用数据库为MySQL5.1,MyEclipse版本为5.5.1

下面我们利用Eclipse工具创建一个Web项目(Web Project),项目名称为SSH,建议大家采用J2EE 5.0规范。

首先,我们对Spring和Hibernate进行整合

第一步,将Spring、Hibernate所需jar包拷贝到WEB-INF/lib目录中。

第二步,在类路径下创建Spring配置文件beans.xml。beans.xml文件的模板如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop  http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" >

</beans>

beans.xml模板文件也可以从Spring帮助文档(documentation)中获得。

第三步,在beans.xml中添加数据源、事务管理器等配置。内容如下:

    <!-- 数据源配置 -->
    <bean id="dataSource" class= "org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/>
    <property name="url"  value="jdbc:mysql://localhost:3306/itcast?userUnicode=true&amp;characterEncoding=UTF-8"/>
    <property name="username" value="root"/>
    <property name="password" value="admin"/>
    <property name="initialSize" value="1"/>
    <property name="maxActive" value="500"/>
    <property name="maxIdle" value="2"/>
    <property name="minIdle" value="1"/>
    </bean>
   
   <!-- spring 的LocalSessionFactoryBean对sessionFactory进行了包装,从而对session进行管理-->
       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="dataSource" ref="dataSource"/>
      <property name="mappingResources">
       <list>
         <value>com/lyk/bean/Person.hbm.xml</value>
       </list>
      </property>
      <property name="hibernateProperties">
         <value>
               hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
               hibernate.hbm2ddl.auto=update
               hibernate.show_sql=false
               hibernate.format_sql=false
        </value>
     </property>
    </bean>
    <!-- Spring提供的针对hibernate的事务管理器 -->
   <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
          <property name="sessionFactory" ref="sessionFactory"/>
   </bean>

    <context:annotation-config />   //Spring 为我们提供了一种方便的注册这些 BeanPostProcessor 的方式,详情参看Spring帮助文档

      <!-- 采用注解方式声明事务,以后采用transaction就打开了事务管理器 -->
      <tx:annotation-driven transaction-manager="txManager"/>

到这里,beans.xml文件基础部分已配置完毕,大家可以看到红色部分显示的是Hiberbate中定义的实体bean的映射文件,下面我们创建实体bean---com.lyk.bean.Person.

第四步,创建com.lyk.bean.Person。在src目录下创建com.lyk.bean包,在该包中创建Person类,如下:

package com.lyk.bean;

public class Person {
 private Integer id;
 private String name;
 public Person(){}
 public Person(String name){
  this.name = name;
 }
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }

}

第五步,接下来定义Person类与MySQL数据库的映射文件。

文件名:Person.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping   package="com.lyk.bean">

 <class name="Person" table="PERSON">
  <id name="id" column="PERSON_ID">
   <generator class="native"/>
  </id>
   <property name="name" column="PERSON_NAME" />  
 </class>
 </hibernate-mapping>

至此,我们已经配置好了beans.xml文件,准备好了实体bean--com.lyk.bean.Person及其数据库映射文件Person.hbm.xml。

你可能感兴趣的:(spring,AOP,Hibernate,bean,ssh)