美文网首页后台Java开发那些事Java学习笔记
SSH配置的步骤以及配置过程应该注意的问题

SSH配置的步骤以及配置过程应该注意的问题

作者: 赵镇 | 来源:发表于2017-01-16 08:01 被阅读69次

    在学习javaweb的三大框架Struts2,Hibernate,Spring的时候遇到了很多问题,大部分是由于自身配置不规范造成的,下面来说一下一些正式的配置步骤

    Struts2的配置

    基础配置

    <struts>
        <constant name="struts.devMode" value="true"></constant>
        <package name="p1" extends="struts-default">
        
        <action name="login" class="com.heima.web.action.UserAction" method="Login">
        <result>/login/home.jsp</result>
        <result name="input">/login/login.jsp</result>
        </action>
        </package>
    </struts>
    

    当然这在action较多的项目中配置起来较为麻烦,因此,我们采用通配符的方式来配置

    通配符配置方式

    <struts>
    <constant name="struts.devMode" value="true"></constant>
    <package name="basicstruts2" extends="struts-default">
    <action name="page_*_*">
    <result name="success" type="dispatcher">/WEB-INF/pages/{1}/{2}.jsp</result></action>
    
    </package>
    </struts>
    

    Spring和Hibernate在Spring配置文件中配置的几个步骤

    加载jdbc属性文件

    <!-- 加载jdbc属性文件 -->
        <context:property-placeholder location="classpath:jdbc.properties"/>
    

    配置属性文件

        <!-- 通过jdbc属性文件配置数据源 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${driverClass}"/>
            <property name="jdbcUrl" value="${jdbcUrl}"/>
            <property name="user" value="${user}"/>
            <property name="password" value="${password}"/>
        </bean>
    
    

    配置Hibernate的工厂Bean

        <!-- spring框架用于整合Hibernate的工厂bean -->
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
    

    注入Hibernate的相关属性和映射文件

            <!-- 注入Hibernate相关的属性 -->
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                    <prop key="hibernate.show_sql">true</prop>
                    <prop key="hibernate.format_sql">true</prop>
                    <prop key="hibernate.hbm2ddl.auto">update</prop>
                </props>
            </property>
            <!-- 注入Hibernate的映射文件 -->
            <property name="mappingDirectoryLocations">
                <list>
                    <value>classpath:com/itheima/bos/domain</value>
                </list>
            </property>
        </bean>
    
    

    spring事务的最后配置

    <!-- 事务管理器 -->
        <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
        
        <!-- 组件扫描 -->
        <context:component-scan base-package="com.itheima.bos"/>
        <!-- 引入注解解析器 -->
        <context:annotation-config/>
        <!-- 事务注解 -->
    
    

    Spring的其他配置

    除了上述的配置,Spring还提供了权限配置(过滤器),编码设置,还有针对Hibernate的session提早关闭的过滤器来解决其他问题,有兴趣的可以自行去查阅一下。在这里,我举一个项目中最常用的编码设置的过滤器为例子、

    Spring在web.xml中配置字符编码过滤器解决字符编码问题

     <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>
      </filter>
      <filter-mapping>
      <filter-name>characterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>
    

    最后,总结一下我在学习SSH三大框架的时候,所遇到的坑,主要有以下几点

    • 1.文件路径是否与实际路径相符
    • 2.类文件的属性是否与数据库相对应,类的属性名与hbm.xml文件中配置的属性是否对应,属性的值允许少但不允许多
    • 3.类之间的关系映射是否正确(多对一,一对多,多对多)
    • 4.spring、Struts,Hibernate在配置过程中都特别注重属性,方法,变量的大小写问题、
    • 5.Hibernate查询的是对应的实体类的名称,Spring 是DAO和Service层的实现类的实例,并不是实现类本身,Struts的Action返回值是action里面result节点的name的值。
    • 6.Struts标签使用过程中,表单是否需要使用Struts标签。取决于是否需要回显

    以上就是我在学习和配置SSH上的一些心得,有不足之处,还望批评指正。

    相关文章

      网友评论

        本文标题:SSH配置的步骤以及配置过程应该注意的问题

        本文链接:https://www.haomeiwen.com/subject/jxeubttx.html