zoukankan      html  css  js  c++  java
  • 1、SSH的整合---->将Struts2整合到Spring中

    1、Spring的配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
    
        <!-- 导入资源文件 -->
        <context:property-placeholder location="classpath:db.properties" />
    
        <!-- 配置 C3P0 数据源 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="${jdbc.user}"></property>
            <property name="password" value="${jdbc.password}"></property>
            <property name="driverClass" value="${jdbc.driverClass}"></property>
            <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
    
            <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
            <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
        </bean>
    
        <!-- 配置 SessionFactory -->
        <bean id="sessionFactory"
            class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
            <property name="mappingLocations" value="classpath:com/baowei/entity/*.hbm.xml"></property>
        </bean>
    
        <!-- 配置 Spring 的声明式事务 -->
        <!-- 1. 配置 hibernate 的事务管理器 -->
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate4.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
    
        <!-- 2. 配置事务属性 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="get*" read-only="true" />
                <tx:method name="lastNameIsValid" read-only="true" />
                <tx:method name="*" />
            </tx:attributes>
        </tx:advice>
    
        <!-- 3. 配置事务切入点, 再把事务属性和事务切入点关联起来 -->
        <aop:config>
            <aop:pointcut expression="execution(* com.baowei.service.*.*(..))"
                id="txPointcut" />
            <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />
        </aop:config>
        
    </beans>

       Spring的配置文件

       

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        
        <bean id="classRoomDao" class="com.baowei.dao.ClassRoomDao">
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
        
        <bean id="studentDao" class="com.baowei.dao.StudentDao">
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
        
        <bean id="classRoomService" class="com.baowei.service.ClassRoomService">
            <property name="classRoomDao" ref="classRoomDao"></property>
        </bean>
        
        <bean id="studentService" class="com.baowei.service.StudentService">
            <property name="studentDao" ref="studentDao"></property>
        </bean>
        
        <!-- <bean id="studentAction" class="com.baowei.action.StudentAction" scope="prototype">
            <property name="studentService" ref="studentService"></property>
        </bean> -->
        
        <!-- <bean id="employeeAction" class="com.atguigu.ssh.actions.EmployeeAction"
            scope="prototype">
            <property name="employeeService" ref="employeeService"></property>    
            <property name="departmentService" ref="departmentService"></property>
        </bean> -->
    
    </beans>

    2、hibernate.cfg.xml的配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory>
            <!-- 配置 hibernate 的基本属性 -->
        
            <!-- 方言 -->
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
            
            <!-- 是否显示及格式化 SQL -->
            <property name="hibernate.show_sql">true</property>
            <property name="hibernate.format_sql">true</property>
        
            <!-- 生成数据表的策略 -->
            <property name="hibernate.hbm2ddl.auto">update</property>
            
            <!-- 二级缓存相关 -->
            
        </session-factory>
        
    </hibernate-configuration>

    3、Struts2的配置文件

    <?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="default" namespace="/" extends="struts-default">
    
            <action name="display" class="com.baowei.action.StudentAction"
                method="listStudent">
                <result name="list">/index.jsp</result>
            </action>
    
        </package>
    
    
    
        <!-- Add packages here -->
    
    </struts>

    4、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">
    
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext*.xml</param-value>
        </context-param>
    
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    
        <!-- 配置 Struts2 的 Filter -->
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

    5、关于ServicerProviderUtils的使用

    package com.baowei.utils;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class ServiceProvider {
        private static ApplicationContext context = null;
        static{
            context = new ClassPathXmlApplicationContext("applicationContext*.xml");
        }
        
        public static Object getService(String name){
            return context.getBean(name);
        }
        
        public static void main(String[] args) {
            System.out.println(ServiceProvider
                    .getService("studentService"));
        }
    }
  • 相关阅读:
    CentOS虚拟机和物理机共享文件夹实现
    集训第六周 数学概念与方法 概率 数论 最大公约数 G题
    集训第六周 数学概念与方法 概率 F题
    集训第六周 E题
    集训第六周 古典概型 期望 D题 Discovering Gold 期望
    集训第六周 古典概型 期望 C题
    集训第六周 数学概念与方法 UVA 11181 条件概率
    集训第六周 数学概念与方法 UVA 11722 几何概型
    DAG模型(矩形嵌套)
    集训第五周 动态规划 K题 背包
  • 原文地址:https://www.cnblogs.com/zhangbaowei/p/4975733.html
Copyright © 2011-2022 走看看