S2SH框架的整合—传统配置文件方式

SSH框架的传统的整合方式:

(仅仅是S2SH框架的整合,每个框架的具体使用将发布在其他篇)

  1. 导jar包

Struts2 spring hibernate的jar包

  1. 配置文件

1). Struts2框架

    * 在web.xml中配置核心的过滤器

       

            struts2

            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

       

       

            struts2

            /*

       

 

    * 在src目录下创建struts.xml,用来配置Action

 

2). Hibernate框架

    * 在src目录创建hibernate.cfg.xml配置文件

    * 在JavaBean所在的包下映射的配置文件

 

3). Spring框架

    * 在web.xml配置整合WEB的监听器

       

            org.springframework.web.context.ContextLoaderListener

       

       

            contextConfigLocation

            classpath:applicationContext.xml

       

 

    * 在src目录下创建applicationContext.xml

    * 在src目录下log4j.proerties

 

       web.xml中的配置:

              xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    id="WebApp_ID" version="2.5">

    <display-name>Demo_sshdisplay-name>

 

   

    <filter>

       <filter-name>OpenSessionInViewFilterfilter-name>

    <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilterfilter-class>

    filter>

    <filter-mapping>

       <filter-name>OpenSessionInViewFilterfilter-name>

       <url-pattern>/*url-pattern>

    filter-mapping>

 

   

    <filter>

       <filter-name>struts2filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>

    filter>

    <filter-mapping>

       <filter-name>struts2filter-name>

       <url-pattern>/*url-pattern>

    filter-mapping>

   

   

    <listener>

       <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>

    listener>

    <context-param>

       <param-name>contextConfigLocationparam-name>

      

       <param-value>classpath:applicationContext.xmlparam-value>

    context-param>

 

    <welcome-file-list>

       <welcome-file>index.jspwelcome-file>

    welcome-file-list>

web-app>

 

整合Struts2框架:

    整合Struts2框架的主要问题是:Action由谁创建的问题:

    第一种:ActionStruts2创建

       xml version="1.0" encoding="UTF-8" ?>

DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

   

<struts>                                                                                    

    <package name="demo" namespace="/" extends="struts-default">

       <action name="userDemo_*" class="com.demo.web.action.UserDemoAction" method="{1}" >

       action>

    package>

struts>

       第二种:Action由spring创建:

              在spring配置文件中加入bean

                     com.demo.web.action.UserDemoAction "  scope="prototype">

                   Struts2的配置文件要做更改:

                     struts.xml中的修改,把全路径修改成ID *

       * 第二种方式需要有两个注意的地方

        * Spring框架默认生成CustomerAction是单例的,而Struts2框架是多例的。所以需要配置 scope="prototype"

        * CustomerService现在必须自己手动注入了

 

 

整合hibernate框架:

    整合hibernate框架的主要问题是sessionFactory放在哪个配置文件

    第一种:带有hibernate.cfg.xml的配置文件。强调:不能加绑定当前线程的配置

       1. 编写CustomerDaoImpl的代码,加入配置并且在CustomerServiceImpl中完成注入

2. 编写映射的配置文件,并且在hibernate.cfg.xml的配置文件中引入映射的配置文件

3. applicationContext.xml的配置文件,配置加载hibernate.cfg.xml的配置

          

                

          

4. CustomerDaoImpl中想完成数据的添加,Spring框架提供了一个HibernateDaoSupport的工具类,以后DAO都可以继承该类!!

           public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {

               public void save(Customer c) {

                   System.out.println("持久层...");

                   this.getHibernateTemplate().save(c);

               }

           }

          

              

          

    第二种:不带hibernate.cfg.xml配置文件的方式。

              1. Hibernate配置文件中

                 * 数据库连接基本参数(4大参数)

                  * Hibernate相关的属性

                 * 连接池

                 * 映射文件

 

2. 开始进行配置

       在Spring的配置文件中配置

                 * 先配置连接池相关的信息

            

           

           

           

           

             

 

                 * 修改 LocalSessionFactoryBean 的属性配置,因为已经没有了hibernate.cfg.xml的配置文件,所以需要修改该配置,注入连接池

            

           

            

 

                 * 继续在 LocalSessionFactoryBean 中配置,使用hibernateProperties属性继续来配置其他的属性,注意值是properties属性文件

            

            

           

                org.hibernate.dialect.MySQLDialect

                true

                true

                update

           

            

            

            

           

                com/itheima/domain/Customer.hbm.xml

           

            

              Hibernate模板类的常用方法:

              1. 增删改的操作:

            * 添加:

               * save(Object obj);

            * 修改:

               * update(Object obj);

            * 删除:

               * delete(Object obj);

 

2. 查询的操作:

         * 查询一条记录:

        * Object get(Class c,Serializable id);

        * Object load(Class c,Serializable id);

 

3. 查询多条记录:

                 * List find(String hql,Object... args);

 

 

Spring配置文件:

      

   

       

       

       

       

       

   

 

   

   

       

       

       

       

           

               

                org.hibernate.dialect.MySQL5Dialect

               

                true

                true

                update

           

       

       

       

           

                domain/Customer.hbm.xml

           

       

   

 

   

   

   

       

   

   

   

 

   

   

       

   

 

   

       

   

 

   

       

   

 

 

 

你可能感兴趣的:(框架)