6       整合ssh框架

6.1     依赖传递

只添加了一个struts2-core依赖,发现项目中出现了很多jar,

这种情况 叫 依赖传递

6.2     依赖版本冲突的解决

1、  第一声明优先原则

<dependencies>

  <!--   spring-beans-4.2.4 -->

       <dependency>

                 <groupId>org.springframework</groupId>

                 <artifactId>spring-context</artifactId>

                 <version>4.2.4.RELEASE</version>
</dependency> <!-- spring-beans-3.0.5 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.24</version> </dependency>

2、  路径近者优先原则

自己添加jar包

         <dependency>

                 <groupId>org.springframework</groupId>

                 <artifactId>spring-beans</artifactId>

                 <version>4.2.4.RELEASE</version>

       </dependency> 

3、  排除原则

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.24</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>

4、  版本锁定原则

<properties>

                   <spring.version>4.2.4.RELEASE</spring.version>

                   <hibernate.version>5.0.7.Final</hibernate.version>

                   <struts.version>2.3.24</struts.version>

         </properties>

         <!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->

         <dependencyManagement>

                   <dependencies>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-context</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

</dependencies>

</dependencyManagement>

需求:

传客户ID 页面上显示客户信息

准备数据库

6.3     构建项目

1、  创建数据库,

2、  执行准备好的sql脚本

3、  完善pom.xml文件,把ssh相关的依赖都添加上去

 <!-- 属性 -->

         <properties>

                   <spring.version>4.2.4.RELEASE</spring.version>

                   <hibernate.version>5.0.7.Final</hibernate.version>

                   <struts.version>2.3.24</struts.version>

         </properties>

         <!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->

         <dependencyManagement>

                   <dependencies>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-context</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-aspects</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-orm</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-test</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-web</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.hibernate</groupId>

                                     <artifactId>hibernate-core</artifactId>

                                     <version>${hibernate.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.apache.struts</groupId>

                                     <artifactId>struts2-core</artifactId>

                                     <version>${struts.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.apache.struts</groupId>

                                     <artifactId>struts2-spring-plugin</artifactId>

                                     <version>${struts.version}</version>

                            </dependency>

                   </dependencies>

         </dependencyManagement>

         <!-- 依赖管理 -->

         <dependencies>

                   <!-- spring -->

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-context</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-aspects</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-orm</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-test</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-web</artifactId>

                   </dependency>

                   <!-- hibernate -->

                   <dependency>

                            <groupId>org.hibernate</groupId>

                            <artifactId>hibernate-core</artifactId>

                   </dependency>

                   <!-- 数据库驱动 -->

                   <dependency>

                            <groupId>mysql</groupId>

                            <artifactId>mysql-connector-java</artifactId>

                            <version>5.1.6</version>

                            <scope>runtime</scope>

                   </dependency>

                   <!-- c3p0 -->

                   <dependency>

                            <groupId>c3p0</groupId>

                            <artifactId>c3p0</artifactId>

                            <version>0.9.1.2</version>

                   </dependency>

                   <!-- 导入 struts2 -->

                   <dependency>

                            <groupId>org.apache.struts</groupId>

                            <artifactId>struts2-core</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.apache.struts</groupId>

                            <artifactId>struts2-spring-plugin</artifactId>

                   </dependency>

                   <!-- servlet jsp -->

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>servlet-api</artifactId>

                            <version>2.5</version>

                            <scope>provided</scope>

                   </dependency>

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>jsp-api</artifactId>

                            <version>2.0</version>

                            <scope>provided</scope>

                   </dependency>

                   <!-- 日志 -->

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>slf4j-log4j12</artifactId>

                            <version>1.7.2</version>

                   </dependency>

                   <!-- junit -->

                   <dependency>

                            <groupId>junit</groupId>

                            <artifactId>junit</artifactId>

                            <version>4.9</version>

                            <scope>test</scope>

                   </dependency>

                   <!-- jstl -->

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>jstl</artifactId>

                            <version>1.2</version>

                   </dependency>

         </dependencies>

         <build>

                   <plugins>

                            <!-- 设置编译版本为1.7 -->

                            <plugin>

                                     <groupId>org.apache.maven.plugins</groupId>

                                     <artifactId>maven-compiler-plugin</artifactId>

                                     <configuration>

                                               <source>1.7</source>

                                               <target>1.7</target>

                                               <encoding>UTF-8</encoding>

                                     </configuration>

                            </plugin>

                            <!-- maven内置 的tomcat6插件 -->

                            <plugin>

                                     <groupId>org.codehaus.mojo</groupId>

                                     <artifactId>tomcat-maven-plugin</artifactId>

                                     <version>1.1</version>

                                     <configuration>

                                               <!-- 可以灵活配置工程路径 -->

                                               <path>/ssh</path>

                                               <!-- 可以灵活配置端口号 -->

                                               <port>8080</port>

                                     </configuration>

                            </plugin>

                   </plugins>

         </build>

4、  完成实体类代码

5、  完成dao代码

接口

package cn.itcast.dao;

import cn.itcast.entity.Customer;

public interface CustomerDao {

         public Customer getById(Long id);

}

实现类

package com.itcast.dao.impl;

import org.springframework.orm.hibernate5.support.HibernateDaoSupport;

import cn.itcast.dao.CustomerDao;

import cn.itcast.entity.Customer;

public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {

         @Override

         public Customer getById(Long id) {

                   return this.getHibernateTemplate().get(Customer.class, id);

         }

}

6、  完成service代码

接口

package com.itcast.service;

import cn.itcast.entity.Customer;

public interface CustomerService {

         public Customer getById(Long id);

} 

实现类

package com.itcast.service.impl;

import com.itcast.service.CustomerService;

import cn.itcast.dao.CustomerDao;

import cn.itcast.entity.Customer;

public class CustomerServiceImpl implements CustomerService {

         private CustomerDao  customerDao;

         public void setCustomerDao(CustomerDao customerDao) {

                   this.customerDao = customerDao;

         }

         @Override

         public Customer getById(Long id) {

                   return customerDao.getById(id);

         }

}

7、  完成action代码

package cn.itcast.action;

import com.itcast.service.CustomerService;

import com.opensymphony.xwork2.ActionSupport;

import cn.itcast.entity.Customer;

public class CutomerAction extends ActionSupport {

         //两个成员变量

         private Customer  customer;

         private Long custId;

         public Customer getCustomer() {

                   return customer;

         }

         public void setCustomer(Customer customer) {

                   this.customer = customer;

         }

         private CustomerService customerService;

         public void setCustomerService(CustomerService customerService) {

                   this.customerService = customerService;

         }

         public Long getCustId() {

                   return custId;

         }

         public void setCustId(Long custId) {

                   this.custId = custId;

         }

         public String findById(){

                   customer = customerService.getById(custId);

                   return SUCCESS;

         }

}

8、  拷贝配置文件并修改

从如下图位置拿到配置文件

放入到 src/main/resources目录中

修改内容 略

9、  修改web.xml 添加spring的监听

<listener>

 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>        

10、              运行项目

7      分模块开发

依赖范围对依赖传递造成的影响(了解)

父工程来管理   聚合

7.1     创建父工程:

1、

2、创建出的父工程如下

3、在pom.Xml中添加以下信息:

 <!-- 属性 -->

         <properties>

                   <spring.version>4.2.4.RELEASE</spring.version>

                   <hibernate.version>5.0.7.Final</hibernate.version>

                   <struts.version>2.3.24</struts.version>

         </properties>

         <!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->

         <dependencyManagement>

                   <dependencies>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-context</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-aspects</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-orm</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-test</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.springframework</groupId>

                                     <artifactId>spring-web</artifactId>

                                     <version>${spring.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.hibernate</groupId>

                                     <artifactId>hibernate-core</artifactId>

                                     <version>${hibernate.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.apache.struts</groupId>

                                     <artifactId>struts2-core</artifactId>

                                     <version>${struts.version}</version>

                            </dependency>

                            <dependency>

                                     <groupId>org.apache.struts</groupId>

                                     <artifactId>struts2-spring-plugin</artifactId>

                                     <version>${struts.version}</version>

                            </dependency>

                   </dependencies>

         </dependencyManagement>

         <!-- 依赖管理 -->

         <dependencies>

                   <!-- spring -->

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-context</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-aspects</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-orm</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-test</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.springframework</groupId>

                            <artifactId>spring-web</artifactId>

                   </dependency>

                   <!-- hibernate -->

                   <dependency>

                            <groupId>org.hibernate</groupId>

                            <artifactId>hibernate-core</artifactId>

                   </dependency>

                   <!-- 数据库驱动 -->

                   <dependency>

                            <groupId>mysql</groupId>

                            <artifactId>mysql-connector-java</artifactId>

                            <version>5.1.6</version>

                            <scope>runtime</scope>

                   </dependency>

                   <!-- c3p0 -->

                   <dependency>

                            <groupId>c3p0</groupId>

                            <artifactId>c3p0</artifactId>

                            <version>0.9.1.2</version>

                   </dependency>

                   <!-- 导入 struts2 -->

                   <dependency>

                            <groupId>org.apache.struts</groupId>

                            <artifactId>struts2-core</artifactId>

                   </dependency>

                   <dependency>

                            <groupId>org.apache.struts</groupId>

                            <artifactId>struts2-spring-plugin</artifactId>

                   </dependency>

                   <!-- servlet jsp -->

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>servlet-api</artifactId>

                            <version>2.5</version>

                            <scope>provided</scope>

                   </dependency>

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>jsp-api</artifactId>

                            <version>2.0</version>

                            <scope>provided</scope>

                   </dependency>

                   <!-- 日志 -->

                   <dependency>

                            <groupId>org.slf4j</groupId>

                            <artifactId>slf4j-log4j12</artifactId>

                            <version>1.7.2</version>

                   </dependency>

                   <!-- junit -->

                   <dependency>

                            <groupId>junit</groupId>

                            <artifactId>junit</artifactId>

                            <version>4.9</version>

                            <scope>test</scope>

                   </dependency>

                   <!-- jstl -->

                   <dependency>

                            <groupId>javax.servlet</groupId>

                            <artifactId>jstl</artifactId>

                            <version>1.2</version>

                   </dependency>

         </dependencies>

         <build>

                   <plugins>

                            <!-- 设置编译版本为1.7 -->

                            <plugin>

                                     <groupId>org.apache.maven.plugins</groupId>

                                     <artifactId>maven-compiler-plugin</artifactId>

                                     <configuration>

                                               <source>1.7</source>

                                               <target>1.7</target>

                                               <encoding>UTF-8</encoding>

                                     </configuration>

                            </plugin>

                            <!-- maven内置 的tomcat6插件 -->

                            <plugin>

                                     <groupId>org.codehaus.mojo</groupId>

                                     <artifactId>tomcat-maven-plugin</artifactId>

                                     <version>1.1</version>

                                     <configuration>

                                               <!-- 可以灵活配置工程路径 -->

                                               <path>/ssh</path>

                                               <!-- 可以灵活配置端口号 -->

                                               <port>8080</port>

                                     </configuration>

                            </plugin>

                   </plugins>

         </build>

4、发布到本地仓库

dao  service  web

7.2     创建dao子模块

1、在ssh-parent项目上右击 ,创建时选择 Maven Module

2、填写子模块名称ssh-dao

3、把属于dao的代码拷贝到 该模块中:

4、完成后发布到本地仓库中

7.3     创建service子模块

1、创建方式如上:

2、把属于service的代码拷贝到该工程中

3、发布到本地仓库中

7.4     创建Action子模块

1、选择war的打包方式

5、  拷贝属于action的代码和配置文件

6、  修改web.xml  添加spring监听

<listener>

 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

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

4、添加页面:

maven学习记录三——maven整合ssh框架的更多相关文章

  1. maven学习记录一——maven介绍及入门

    1       Maven的简介 1.1     什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 1.2     Maven好处 普通的传统项目 M ...

  2. Maven 整合SSH框架

    1. 传递依赖冲突 1.1 传递依赖:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C是A的传递依赖; A(项目)又依赖D,D依赖C(1.2版本),此时,C有两个版本,产生冲突; 1.2 ...

  3. Maven项目整合SSH框架

    ---------------------siwuxie095                                         Maven 项目整合 SSH 框架         创建 ...

  4. (转)Maven学习总结(六)——Maven与Eclipse整合

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(六)——Maven与Eclipse整合 一.安装Maven插件 下载下来的maven插件如下图所示:,插件存放的路径是:E:/MavenP ...

  5. (转)Maven学习总结(三)——使用Maven构建项目

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(三)——使用Maven构建项目 maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的 ...

  6. 3.VUE前端框架学习记录三:Vue组件化编码1

    VUE前端框架学习记录三:Vue组件化编码1文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  7. Maven02——回顾、整合ssh框架、分模块开发、私服

    1 回顾 1.1 Maven的好处 节省空间 对jar包做了统一管理 依赖管理 一键构建 可跨平台 应用在大型项目可提高开发效率 1.2 Maven安装部署配置 1.3 Maven的仓库 本地仓库 远 ...

  8. (转)Maven学习总结(四)——Maven核心概念

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(四)——Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Mav ...

  9. Struts2,Spring3,Hibernate4整合--SSH框架

    Struts2,Spring3,Hibernate4整合--SSH框架(学习中) 一.包的导入 1.Spring包 2.Hibernate 包 3.struts 包 (还欠 struts2-sprin ...

随机推荐

  1. ffmpeg+cuda+opencv

    为了让ffmpeg使用gpu进行解码,可以按以下步骤: 1 下载nvidia官网提供的ffmpeg,编译安装 https://developer.nvidia.com/ffmpeg 注意原来的选项上还 ...

  2. Java变量类型,实例变量 与局部变量 静态变量

    实例变量: 实例变量在类中声明,但在方法的外面,构造函数或任何块. 当空间分配给某个对象在堆中,插槽为每个实例变量创建值. 当一个对象与使用关键字 “new” 来创建,在对象被销毁销毁创建的实例变量. ...

  3. c# 跨平台ide JetBrains Rider

    https://www.jetbrains.com/rider/ et框架 调试hotfix用的,说是vs调试容易崩溃 破解方法 https://zhile.io/2018/08/18/jetbrai ...

  4. npm是什么NPM的全称是Node Package Manager

    npm是什么NPM的全称是Node Package Manager

  5. Nmap原理02 - 编写自己的服务探测脚本

    编写自己的服务探测脚本 1. 添加自己的探测脚本 nmap-service-probes文件的格式将在第二节介绍,本节通过一个例子说明如何添加自己的服务探测脚本. AMQP协议,即Advanced M ...

  6. ContextCapture水面约束(水面破洞修复)

      [问题描述] 对于水面而言,由于特征点较少,软件在计算时很难匹配正确,导致输出模型的水面通常是支离破碎的.软件针对这种情况提供了一个约束工具,用户手动的为水面添加平面约束后,输出的水面模型就会非常 ...

  7. 原生js与jquery的区别

    1.选择器: js: $('.car_img_con img')[0]; var jsObj = document.getElementsByClassName('sel_index_block')[ ...

  8. Android界面编程--使用活动条(ActionBar)

    ActionBar的使用 1.启动ActionBar(默认状态下是启动的) 1.1 在Android配置文件(AndroidManifest.xml)中设置应用的主题为 ***.NoActionBar ...

  9. 【转载】BootStrap表格组件bootstrap table详解

    (转载,来源“脚本之家”,作者不详) 一.Bootstrap Table的引入 关于Bootstrap Table的引入,一般来说还是两种方法: 1.直接下载源码,添加到项目里面来.由于Bootstr ...

  10. oracle学习篇三:SQL查询

    select * from emp; --1.找出部门30的员工select * from emp where deptno = 30; --2.列出所有办事员(CLERK)的姓名,变化和部门编号se ...