zoukankan      html  css  js  c++  java
  • SSH集成(Struts+Spring+Hibernate)

    环境:
    struts2.3.X
    spring4.0.0
    hibernate4.2

    思路:从下开始往上集成;层与层之间没有关系;在集成的时候,只关注当前集成的那个层的内容;

    1,创建一个空的web项目;重新定位class文件编译路径
    2,设置项目的编码;
    3,完成domain;
    4,完成映射文件;
    5,写DAO接口;
    6,写DAO实现 

      1),拷包(hiberante/required,数据库驱动,springcore/test/bean/context);
      2),spring配置文件:
        1),配置datasource;
        2),添加db.properties文件;
        3),引入db.properties文件;
      3),配置sessionFactory
        1),导入spring jdbc/tx/orm;
        2),使用LocalSessionFactoryBean来创建SessionFactory;
          1),配置dataSource;
          2),配置hibernate的其他相关配置:直接在classpath下面创建一个hibernate.proeprties文件,在这里面加上show_sql,dailect,hbm2ddl.auto等hibernate配置;(spring会自动的加载和读入);
          3),配置映射文件:使用的是扫描hbm.xml文件所在的文件夹路径来引入的(mappingDirectoryLocations,这个配置后面的内容可以使用classpath:前缀,注意是文件路径)

      4),完成DAO:
        1),直接在dao中注入一个SessionFactory;
        2),在DAO中直接使用SessionFactory.getCurrentSession()来得到我们需要的session;
        3),千万不要开启事务;
        4),千万不要手贱关session;
      5),在spring中配置DAO;
        1),抽象一个baseDAO;<bean id="baseDAO" abstract="true" />
        2),让employeeDAO继承BaseDAO;<bean id="employeeDAO" parent="baseDAO" />

    7,写Service:
      1),完成service接口和实现;
      2),在spring中配置servicebean;
      3),配置事务:
        1),配置transcationMaanager,使用HibernateTransactionManager,并传入一个sessionFactory;
        2),配置事务属性;
        3),配置事务切面;

    8,集成Struts2
      1),拷贝相关内容(struts2.xml,struts2的jar包,web.xml)
      2),完成Action;
      3),在Spring中配置Action;注意,action的scope需要是prototype的;
      4),完成struts的配置文件:
      注意,在action的class属性,不能再写Action的类限定名;只能写这个Action在spring中配置的bean的id值;
      5),导入spring-web.jar,struts2-spring-plugin.jar;
      6),在web.xml中添加<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      7),在web.xml中添加spring框架启动的加载的配置文件路径:

        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>

    struts集成spring原理

    在struts2-spring-plugin.jar中:
    <!--配置了一个名字叫做spring的StrutsSpringObjectFactory -->
    <bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />

    <!-- struts.objectFactory代表,在struts中,使用哪个类来作为工厂类,生产struts需要的bean(包括action,interceptor) -->
    <constant name="struts.objectFactory" value="spring" />

  • 相关阅读:
    安装 oracle 11g 发行版 出现错误:由于以下错误,Enterprise Manager配置失败,启动Database Control时出错
    ORACLE_SID的查找
    visual studio 2017 编译v140 TRACKER : error TRK0005: Failed to locate: "CL.exe". 系统找不到指定的文件
    mysql 数据库表名大小写问题
    Windows下部署mongodb
    where case 使用
    虚拟机,云服务器搭建vulhub靶场
    [De1CTF 2019]SSRF Me
    [2020YCTF]web1-rce_nopar
    [2020YCTF]
  • 原文地址:https://www.cnblogs.com/Java0120/p/10013588.html
Copyright © 2011-2022 走看看