zoukankan      html  css  js  c++  java
  • SSH(一)

    系统程序架构:

        整合思路
            1.逆依赖方向而行,由Spring提供对象管理和服务
            2.依次实现Spring与Hibernate、Spring与Struts2的集成

    配置web.xml文件:
        1.设置Spring配置文件
            Spring配置文件的存放位置,若文件放置在/WEB-INF/目录下且名称为applicationContext.xml,可以不配置此项
        范例:

    1 <context-param>
    2         <param-name>contextConfigLocation</param-name>
    3         <param-value>classpath:applicationContext.xml</param-value>
    4 </context-param>


        2.指定何时启动Spring容器
            该监听器用于在web环境中启动Spring容器
        范例:  

    1 <listener>
    2         <listener-class>
    3             org.springframework.web.context.ContextLoaderListener
    4         </listener-class>
    5 </listener>


        3.配置OpenSessionInVIew模式
            该过滤器把一个Hibernate Session和一次完整的请求过程相绑定解决了诸如延迟加载等问题。
        范例:

     1 <filter>
     2         <filter-name>OpenSessionInViewFilter</filter-name>
     3         <filter-class>
     4             org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
     5         </filter-class>
     6 </filter>
     7 <filter-mapping>
     8         <filter-name>OpenSessionInViewFilter</filter-name>
     9         <url-pattern>/*</url-pattern>
    10 </filter-mapping>

        注意:
        1. 该过滤器要配置在Struts 2核心控制器之前
        2. 若Spring中定义的SessionFactory Bean的id不是sessionFactory,需要为该过滤器配置sessionFactoryBeanName参数
            
    在Spring中配置数据源和会话工厂:
        方法一:配置文件分离
            a.定义独立的Hibernate配置文件
            b.由Spring导入并创建会话工厂Bean
        方法二:在Spring配置文件中进行集中配置
            a.先配置数据源,再以此为基础配置会话工厂Bean
            b.持久化类的映射文件可以逐个配置,也可以按目录导入
            
    使用HibernateDaoSupport基类:
        1.HibernateDaoSupport基类的setSessionFactory()方法
        范例: 

    1  <bean id="sessionFactory"
    2         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    3         <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
    4 </bean>
    5 
    6 <bean id="userDao" class="com.xuetang9.demo.dao.impl.UserDaoImpl">
    7         <property name="sessionFactory" ref="sessionFactory"></property>
    8 </bean>

       
    1.hibernate的配置文件自动生成时,没有userName 和 password?

    范例:
    1.hibernate.cfg.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-configuration PUBLIC
     3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     4         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     5 <hibernate-configuration>
     6     <session-factory>
     7         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
     8         <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernatedb</property>
     9            <property name="connection.username">root</property>
    10         <property name="connection.password">root</property>
    11         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    12         <property name="show_sql">true</property>
    13         <property name="format_sql">true</property>
    14         
    15         <mapping resource="com/Elastic/SpringDemo3/ivy/entity/User.hbm.xml"/>
    16         
    17     </session-factory>
    18 </hibernate-configuration>


    2.struts.xml

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <!DOCTYPE struts PUBLIC
    3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    4     "http://struts.apache.org/dtds/struts-2.3.dtd">
    5     
    6 <struts>
    7 
    8 </struts>


    3.web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <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">
     3   <display-name>SpringDemo3_ivy</display-name>
     4   <welcome-file-list>
     5     <welcome-file>index.html</welcome-file>
     6     <welcome-file>index.htm</welcome-file>
     7     <welcome-file>index.jsp</welcome-file>
     8     <welcome-file>default.html</welcome-file>
     9     <welcome-file>default.htm</welcome-file>
    10     <welcome-file>default.jsp</welcome-file>
    11   </welcome-file-list>
    12  
    13   <!-- 配置Spring文件的位置 -->
    14   <context-param>
    15       <param-name>contextConfigLocation</param-name><!-- 固定 -->
    16       <!-- classPath:表示放在项目的根目录下 -->
    17       <param-value>classPath:applicationContext.xml</param-value>
    18   </context-param>
    19  
    20   <!-- 配置Spring的启动监听器 -->
    21   <listener>
    22       <listener-class>org.springframework.web.context.ContextCleanupListener</listener-class>
    23   </listener>
    24  
    25   <!-- 配置OpenSessionInView模式 -->
    26   <filter>
    27       <filter-name>OpenSessionInView</filter-name>
    28       <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    29   </filter>
    30   <filter-mapping>
    31       <filter-name>OpenSessionInView</filter-name>
    32       <url-pattern>/*</url-pattern>
    33   </filter-mapping>
    34  
    35   <!-- 配置Struts2核心控制器 -->
    36   <filter>
    37       <filter-name>Struts2</filter-name>
    38       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    39   </filter>
    40   <filter-mapping>
    41       <filter-name>Struts2</filter-name>
    42       <url-pattern>/*</url-pattern>
    43   </filter-mapping>
    44  
    45   <!-- 配置HttpSession过期时间(单位:分钟) -->
    46   <session-config>
    47       <session-timeout>20</session-timeout>
    48   </session-config>
    49 
    50 </web-app>


    4.applicationContext.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xmlns:aop="http://www.springframework.org/schema/aop"
     5     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
     6         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
     7 
     8     <!-- 配置SessionFactory(方法1:独立hibernate配置文件) -->
     9     <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    10         <property name="configLocation" value="classPath:applicationContext.xml"></property>
    11     </bean> -->
    12     
    13     <!-- 使用Spring集成Hibernate(方法2:不需要hibernate配置文件) -->
    14     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    15         <property name="user" value="root"></property>
    16         <property name="password" value="root"></property>
    17         <property name="jdbcUrl" value="jdbc:mysql://localhost/hibernatedb"></property>
    18         <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
    19         
    20         <!-- 连接池 -->
    21         <property name="initialPoolSize" value="10"></property>
    22         <property name="minPoolSize" value="5"></property>
    23         <property name="maxPoolSize" value="100"></property>
    24         <property name="acquireIncrement" value="3"></property>
    25         <!-- 请求获取连接的重试次数 -->
    26         <property name="acquireRetryAttempts" value="3"></property>
    27         <property name="acquireRetryDelay" value="5"></property>
    28         <property name="idleConnectionTestPeriod" value="60"></property>
    29         
    30     </bean>
    31     
    32     <!-- 使用dataSource配置SessionFactory -->
    33     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    34         <property name="dataSource" ref="dataSource"></property>
    35         <property name="hibernateProperties">
    36             <props>
    37                 <prop key="dialect">org.hibernate.dialect.MySQLDialect</prop>
    38                 <prop key="show_sql">true</prop>
    39                 <prop key="format_sql">true</prop>
    40             </props>
    41         </property>
    42         
    43         <!-- 通配 -->
    44         <property name="mappingLocations" value="classPath:com/Elastic/SpringDemo3/ivy/entity/*.hbm.xml">
    45         </property>
    46         
    47         <!-- 穷举 -->
    48         <!-- <property name="mappingLocations">
    49             <list>
    50                 <value>classPath:com/Elastic/SpringDemo3/ivy/entity/*.hbm.xml</value>            
    51             </list>
    52         </property> -->
    53         
    54     </bean>
    55 </beans>






























       

  • 相关阅读:
    Jquery-EasyUI学习2~
    IIS——发布网站
    一致性哈希算法
    利用ZTree链接数据库实现 [权限管理]
    Form表单提交的简要方式
    Redis学习之5种数据类型操作、实现原理及应用场景
    redis对比其余数据库
    ZooKeeper概述(转)
    Zookeeper-Zookeeper可以干什么
    Java内存分配及变量存储位置实例讲解
  • 原文地址:https://www.cnblogs.com/ivy-xu/p/5651980.html
Copyright © 2011-2022 走看看