SSH整合

Posted ualblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH整合相关的知识,希望对你有一定的参考价值。

 

 

一、Spring与Web项目整合

  1)在Servlet中直接加载配置文件,获取对象。

    这样做不好,每次请求都会创建一个Spring工厂,这样浪费服务器资源,应该一个项目只有一个工厂。在服务器启动时,创建一个Spring工厂,创建完工厂,将这个工厂类保存到ServletContext里面。每次从ServletContext中获取。

  解决方案:使用spring核心监听器ContextLoaderContext

    1.引入jar包,Spring-web.war

    2.配置监听器:在web.xml下配置

  技术图片

 <!--加载Spring的配置文件的路径的,默认加载的/WEB-INf/applicationContext.xml-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <!--Spring的核心监听器-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    3.直接在Action中获取工厂。

    将对象交给Spring管理

   技术图片

    技术图片

直接从ServletContext中获取工厂,从而获得被Spring管理的对象。

技术图片

二、SSH整合

  1.引入jar包

  2.引入配置文件

    2.1struts:配置核心过滤器,配置struts.xml,创建Action类

    核心过滤器

    技术图片

struts.xml

技术图片

action类

技术图片

jsp

技术图片

    创建domain类:其中字段名与jsp表单的name对应

  技术图片

技术图片

采用模型驱动方式获取参数:

技术图片

  2.2引入Spring

  web.xml中配置核心监听器,从而在服务器启动时,将创建的Spring工厂存入ServletContext

     技术图片

    引入application.xml文件,同时将service层实现类交给Spring管理

  技术图片

    在web层调用Spring工厂

  技术图片

  也可以通过导入jar包方式获取工厂:

技术图片

技术图片

 

 

  3.创建包结构

  4.创建相关类

  5.创建业务层,把业务层交给Spring管理

  6.Spring整合struts2

  将action交给Spring管理,本来action在strut.xml中进行配置的,但交给Spring进行配置可以进行AOP增强,且方便管理。

 技术图片

技术图片

 

  7.创建Dao交给Spring管理

  创建dao接口,dao实现类

技术图片

将dao实现类交给Spring管理

技术图片

技术图片

 

  8.在业务中注入dao

 

  9.Spring整合Hibernate框架

   将Account.hbm.xml引入domain文件夹下,并与表做字段对应

  技术图片

引入jar包:

技术图片

将数据库配置文件引入

技术图片

另外写一个hibernateApplicationContext.xml

在其中写入hibernate相关配置,并在主的applicationContext中引入

技术图片

 <!--配置Hibernate-->
    <!--加载属性文件-->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!--连接池-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <!--属性文件中的名称不能和name值一样-->
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <!--Spring整合Hibernate-->
    <!--引入Hibernate配置信息,前提是导入Spring.orm的jar包-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <!--注入连接池-->
        <property name="dataSource" ref="dataSource"/>
        <!--配置Hibernate相关属性-->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.mysql5Dialect</prop><!--声明使用mysql数据库语言格式,中间要加5-->
                <prop key="hibernate.show_sql">true</prop><!--生成sql后进行打印-->
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="current_session_context_class">thread</prop><!--允许SessionFactory中可以调用getCurrentSession()方法获取当前线程的session-->
            </props>
        </property>
        <!--设置映射文件-->
        <property name="mappingResources">
            <list>
                <value>com/ual/domain/Account.hbm.xml</value>
            </list>
        </property>
    </bean>

技术图片

 

以上是关于SSH整合的主要内容,如果未能解决你的问题,请参考以下文章

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

Java的SSH框架整合

SSH整合总结(OA项目)

dwr与ssh框架整合教程

SSH 框架整合(maven版本 xml配置方式)

Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用