新建SSH框架的开发笔记

一,新建工程

    1.1 开发环境是Eclipse3.2+MyEclipse5.5,SSH版本是Spring2.0+Hibernate3.0+Struts1.2。

    1.2 新建一个Java的WEB工程,新建工程的时候导入JSTL1.1的包。

    1.3 源代码已经上传,见于http://download.csdn.net/source/2071908

 

二,加入Struts

    2.1 在新建的工程里导入Struts1.2的包和标签。

    2.2 新建一套简单的登录验证页面测试是否成功,成功以后进行下一步。

 

三,加入Spring

    3.1 用Eclipse自动加入Spring2.0的AOP和Core两组包。

    3.2 我个人的习惯是把applicationContext.xml放在WebRoot/WEB-INF目录下。

    3.3 去掉"commons-attributes-compiler.jar"、"commons-attributes-api.jar"两个多余的包。

    3.4 修改struts-config.xml文件

    3.4.1 在message-resources标签下,新加入

             <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
                      <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml,/WEB-INF/applicationContext.xml" />
             </plug-in>

    3.4.2 所有的action的type="org.springframework.web.struts.DelegatingActionProxy"

    3.5 修改web.xml,在开头部分加入

          <context-param>
              <param-name>contextConfigLocation</param-name>
          <param-value>
            /WEB-INF/action-servlet.xml,/WEB-INF/applicationContext.xml
          </param-value>
          </context-param>

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

    3.6 新加入/WEB-INF/action-servlet.xml文件,这个文件是用于记录<bean>信息的,可以设置多个用于不同的业务。

          <bean name="/login" class="com.fz.struts.action.LoginAction">
                <property name="userDAO" ref="userDAO"></property>
          </bean>

          注:<property name="userDAO" ref="userDAO"></property>这一部分是Hibernate被Spring注入的内容,暂时先不要写.

    3.7 测试原有的登录页面是否能够照常启动。

 

四,加入Hibernate

    4.1 用Eclipse导入Hibernate。

    4.1.1 加入Core和Advanced Support两个lib库。

    4.1.2 选择使用Spring的application.xml文件为Hibernate的配置文件,这样便于结合使用。

    4.1.3 选择Spring的application.xml文件,设定SessionFactory ID。

    4.1.4 选择要使用的DataSource并且设定其BEAN ID。

    4.1.5 选定Hibernate的数据库连接

    4.1.6 选顶HibernateSessionFactory的放置的包路径,完成导入Hibernate.

    4.2 修改applicationContext.xml文件,配置Spring和Hibernate结合

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

        要改成<bean id="DataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        否则会找不到指定的连接类

    4.2.2 配置事务
        <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory">
                <ref local="SessionFactory"/>
            </property>

        </bean>

    4.3 配置一套DAO
    4.3.1 配置applicationContext.xml文件的实体的XML,既在property name="mappingResources"的list属性里

             加入<value>com/test/hibernate/pojo/TbUsers.hbm.xml</value>

             完整SessionFactory片段如下:

             <bean id="SessionFactory"
                   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                   <property name="dataSource" ref="DataSource">
                   </property>
                   <property name="hibernateProperties">
                        <props>
                             <prop key="hibernate.dialect">
                                   org.hibernate.dialect.MySQLDialect
                             </prop>
                        </props>
                   </property>
                   <property name="mappingResources">
                      <list>
                           <value>com/test/hibernate/pojo/TbUsers.hbm.xml</value>
                      </list>
                  </property>
            </bean>

    4.3.2 代理

             <bean id="UserDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
                <property name="transactionManager">
                    <ref bean="transactionManager"/>
                </property>
                <property name="target" ref="TbUsersDAO">
                </property>
                <property name="transactionAttributes">
                    <props>
                        <prop key="insert*">PROPAGATION_REQUIRED</prop>
                        <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
                    </props>
                </property>
            </bean>

    4.3.3 注入SessionFactory

             <bean id="TbUsersDAO" class="com.test.hibernate.pojo.TbUsersDAO">
                 <property name="sessionFactory">
                     <ref bean="SessionFactory" />
                 </property>

             </bean>

 

五,整体测试

    5.1 关于开发的部分我就不多说了,写一条登录验证测试一下。

 

六,备注

    6.1 以下<url-pattern>参数里面的内容可以控制action显示的后缀,可以改成htm,html一类的。

    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    6.2 DataSource是已经设定好的数据库的配置连接的文件。

    6.3 log4j.properties文件时Log4j的配置文件,使用Log4j便于调试错误。

    6.4 myeclipse 添的spring2.0时自动添加的包cglib-nodep-2.1_3.jar有问题.

          (它添加的是spring1.2里面的CGLIB)所以不要用它添加的这个jar包,

          自己导入spring 2.0.4里的cglib-nodep-2.1_3.jar,并且把添加hibernate3.0时

          自动添加三个包asm.jar,asm- attrs.jar,cglib-2.1.3.jar 删除就可以了。

          注:这个问题可以导致SessionFactory创建失败,或者类似的包冲突问题。

    6.5 大多数的问题都是各种的包冲突,先考虑排查这个问题。

    6.6 SSH所使用的jar包需要导入到工程里面来,便于我们修改引用的jar包.


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值