zoukankan      html  css  js  c++  java
  • 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>

     想要使用Hibernate的dao类继承HibernateDaoSupport这个类,

    在applicationContext.xml的dao层管理中注入sessionFactory,在注入sessionFactory时,内部自动帮你创建了模板

    后面引入的sessionFactory是HibernateApplicationContext中已经声明好的。

    直接在dao类中这样获取模板就可以了。

     在HIbernateApplicationContext中开启事务

    在类上添加注解

     

  • 相关阅读:
    Bootstrap
    格式化字符串
    闭包函数与装饰器
    正则表达式
    jQuery
    分布式-锁-1.1 多线程锁无法满足的场景
    effective python 读书笔记-第22条: 尽量用辅助类来维护程序的状态,而不要用字典
    effective python 读书笔记:第21条-用只能以关键字形式指定的参数来确保代码明晰
    effective python 读书笔记:第20条-用None和文档字符串来描述具有动态默认值的参数
    git如何将上游(upstream)新建分支(origin没有)导入到origin中?
  • 原文地址:https://www.cnblogs.com/UalBlog/p/10708444.html
Copyright © 2011-2022 走看看