美文网首页
maven学习 Day3 2018-11-21

maven学习 Day3 2018-11-21

作者: Ernest_Chou | 来源:发表于2018-11-21 23:58 被阅读0次

二、Maven实战

3.通过maven整合ssh框架

<!-- 属性 -->
  <!-- struts的版本 ==> spring的版本4.3.13  ==> hibernate的版本 -->
  <properties>
    <!-- 统一源码的编码方式 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- 统一各个框架版本 -->
    <struts.version>2.5.10</struts.version>
    <spring.version>4.3.10.RELEASE</spring.version>
    <hebernate.version>5.1.7.Final</hebernate.version>
  </properties>
  
  <build>
    <plugins>
        <!-- 统一源代码编译输出的JDK版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <!-- 设置详细信息 -->
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
  </build>
   <!-- 版本锁定:指定项目中依赖的版本 -->
  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency> 
    </dependencies>
  </dependencyManagement>
  
  <dependencies>
    <!-- Struts2和Spring整合依赖 包含struts2和spring基础包  -->
    <!-- 包含Spring 核心依赖 Spring web依赖 Struts2 核心依赖  -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>${struts.version}</version>
    </dependency>
    <!-- spring基础jar包  4.2之后的新版本支持hibernate5  -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- Spring web依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- Spring整合ORM框架依赖 Spring集成Hibernate所需包 -->
    <dependency> 
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- SpringAop所依赖的包 -->
    <!-- <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.10</version>
    </dependency> -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- Hibernate核心包 -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hebernate.version}</version>
    </dependency>
    <!-- 连接池 -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>${hebernate.version}</version>
    </dependency>
    <!-- oracle驱动 -->
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
    </dependency>
3.1 搭建struts2环境
  1. 创建struts2配置文件:struts.xml
  2. 在web.xml中配置struts2的核心过滤器
<!-- 配置struts核心过滤器 -->
  <filter>
    <filter-name>struts</filter-name>
        <!-- 高版本路径 -->
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <!-- 低版本路径 -->
    <!-- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> -->
  </filter>
  <filter-mapping>
    <filter-name>struts</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
3.2 搭建spring环境
  1. 创建spring配置文件:applicationContext.xml
  2. 在web.xml中配置监听器:ContextLoaderListener
 <!-- 配置spring监听器 :默认加载WEB-INF/applicationContext.xml -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 通过上下文参数指定spring配置文件路径 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
3.3 搭建Hibernate环境
  1. 创建Hibernate核心配置文件
<?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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!-- 配置在控制台显示SQL语句 -->
        <property name="show_sql">true</property>
        <!-- 配置对输出的SQL语句进行格式化 -->
        <property name="format_sql">true</property>
        <property name="hbm2ddl.auto">none</property>
        <property name="myeclipse.connection.profile">ehrp</property>
        <property name="connection.url">jdbc:oracle:thin:@192.168.0.134:1521/ehrp</property>
        <property name="connection.username">user_developer</property>
        <property name="connection.password">user_developer</property>
        <property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
    </session-factory>

</hibernate-configuration>
3.4 struts2跟spring整合

整合要点:action对象创建,交给spring创建

  1. 创建action类
  2. 将action对象配置到spring文件中
<!-- 配置action 必须配置scope为多实例 --> 
    <bean id="customerAction" class="com.zhougl.web.action.CustomerAction" scope="prototype">
    
    </bean>
  1. 在struts.xml中的action节点中class属性配置为spring工厂中action对象bean的id
<package name="demo" namespace="/" extends="struts-default">
        <!-- class为spring中action对象bean的id -->
        <action name="customerAction_*" class="customerAction" method="{1}">
            <result name="success">/index.jsp</result>
        </action>
    </package>
3.5 spring跟hibernate整合

整合要点

    1. 数据源DataSource交给spring
    <!-- 加载属性值  classpath只有spring配置才有-->
      <context:property-placeholder location="classpath:db.properties"/>
      <!-- 配置DataSource -->
      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
          <property name="driverClass" value="${jdbc.driverClass}"></property>
          <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
          <property name="user" value="${jdbc.user}"></property><!-- 通过ognl表达式来取值是,${user}在linux下取的是用户名 ${userName}在window下取的是计算机名,都会报错-->
          <property name="password" value="${jdbc.password}"></property>
      </bean>
    
    1. SessionFactory对象交给spring创建
    <!-- 配置sessionFactory -->
      <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
          <property name="dataSource" ref="dataSource"></property>
          <property name="configLocations" value="classpath:hibernate.cfg.xml"></property>
      </bean>
    

    去掉hibernate.cfg.xml中数据库配置信息

    1. 事务管理
    • a) 配置事务框架:PlatformTransactionManager接口

      i. jdbc:DataSourceTransactionManager

      ii. Hibernate:HibernateTransactionManager

          <!-- xml方式管理事务 start-->
          <!-- 配置通知:具体增强逻辑 -->
          <tx:advice id="txAdvice">
              <tx:attributes>
                  <!-- 匹配业务类中方法名称 -->
                  <tx:method name="save*"/>
                  <tx:method name="delete*"/>
                  <tx:method name="update*"/>
                  <tx:method name="find*" read-only="true"/>
                  <tx:method name="*"/>
              </tx:attributes>
          </tx:advice>
          <!-- 配置aop -->
          <aop:config>
              <!-- 配置切点:具体哪些方法要增强(真正被增强的方法) -->
              <aop:pointcut expression="execution(* com.zhougl.service.*.*(..))" id="cut"/>
              <!-- 配置切面:将增强逻辑作用到切点(通知+切点) -->
              <aop:advisor advice-ref="txAdvice" pointcut-ref="cut"/>
          </aop:config>
          <!-- xml方式管理事务 end-->
      
  <!-- 注解方式管理事务 start -->
  <!-- 1.开启注解驱动,2.在service类或者方法上使用注解@Transactional -->
  <tx:annotation-driven transaction-manager="transactionManager"/>
  <!-- 注解方式管理事务 end -->
3.6 需求

在地址栏输入action请求,action-service-dao。完成客户需求。

3.7 具体实现
    1. 创建客户实体类、映射文件、将映射文件引入hibernate核心配置文件中
    1. 创建action、service、dao。完成注入。
    • a) 在类中添加属性生成set 方法
    //serviceImpl
    private PhoneUserDao phoneUserDao;
    
      public void setPhoneUserDao(PhoneUserDao phoneUserDao) {
          this.phoneUserDao = phoneUserDao;
      }
    //action
    private PhoneUserService phoneUserService;
    
      public void setPhoneUserService(PhoneUserService phoneUserService) {
          this.phoneUserService = phoneUserService;
      }
    
  • b)在spring配置文件中完成注入

    <!-- 配置dao对象 -->
        <bean id="phoneUserDao" class="com.zhougl.web.dao.impl.PhoneUserDaoImpl">
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
        <!-- 配置service对象 -->
        <bean id="phoneUserService" class="com.zhougl.web.service.impl.PhoneUserServiceImpl">
            <property name="phoneUserDao" ref="phoneUserDao"></property>
        </bean>
        <!-- 配置action 必须配置scope为多实例 --> 
        <bean id="phoneUserAction" class="com.zhougl.web.action.PhoneUserAction" scope="prototype">
            <property name="phoneUserService" ref="phoneUserService"></property>
        </bean>
    

相关文章

  • maven学习 Day3 2018-11-21

    二、Maven实战 3.通过maven整合ssh框架 3.1 搭建struts2环境 创建struts2配置文件:...

  • Maven快速上手

    1、Maven介绍 注:改章节的内容主要粘贴自:Maven学习总结(一)——Maven入门。Maven(这个单词来...

  • maven学习笔记

    maven学习笔记 2016年1月6日 一、maven安装 windows下maven安装安装maven前,首先要...

  • Maven学习(四) Maven 聚合 继承 单继承

    Maven学习(四) Maven 聚合 继承 单继承 聚合 Maven聚合:一个Maven项目,用来管理它的mav...

  • 2019-03-03

    技术:有关maven学习 互联网运营:关于运营和做简历 一、有关Maven的学习: 1、有关maven包的下载:h...

  • 21天|禾叶组合《如何学习》

    【Day3】今日学习《如何学习》第四章 day3 分散式学习 现在是考试周前的最后三天,学生们都在刻苦复习,迎接考...

  • North China regions fight air po

    2018-11-21 Serveral northern Chinese region have stepped ...

  • maven的应用(摘自菜鸟教程)

    一直使用maven,缺少系统化学习,找了本教程,系统的了解和学习下 1 maven的基本概念 maven安装 po...

  • 2018-11-22

    2018-11-21 姓名:张正强 公司:江阴嘉鸿橡塑科技有限公司 【日精进打卡第️️35天】 【知~学习】 《六...

  • Maven 安装及配置

    环境:Windows参考:maven学习系列——(二)maven的安装和一些基本的配置Eclipse安装maven...

网友评论

      本文标题:maven学习 Day3 2018-11-21

      本文链接:https://www.haomeiwen.com/subject/audqqqtx.html