6 整合ssh框架
6.1 依赖传递
只添加了一个struts2-core依赖,发现项目中出现了很多jar,
这种情况 叫 依赖传递
6.2 依赖版本冲突的解决
1、 第一声明优先原则
org.springframework spring-context 4.2.4.RELEASE org.apache.struts struts2-spring-plugin 2.3.24
2、 路径近者优先原则
自己添加jar包
org.springframework spring-beans 4.2.4.RELEASE
3、 排除原则
org.apache.struts struts2-spring-plugin 2.3.24 org.springframework spring-beans
4、 版本锁定原则
4.2.4.RELEASE 5.0.7.Final 2.3.24 org.springframework spring-context ${spring.version}
需求:
传客户ID 页面上显示客户信息
准备数据库
6.3 构建项目
1、 创建数据库,
2、 执行准备好的sql脚本
3、 完善pom.xml文件,把ssh相关的依赖都添加上去
4.2.4.RELEASE 5.0.7.Final 2.3.24 org.springframework spring-context ${spring.version} org.springframework spring-aspects ${spring.version} org.springframework spring-orm ${spring.version} org.springframework spring-test ${spring.version} org.springframework spring-web ${spring.version} org.hibernate hibernate-core ${hibernate.version} org.apache.struts struts2-core ${struts.version} org.apache.struts struts2-spring-plugin ${struts.version} org.springframework spring-context org.springframework spring-aspects org.springframework spring-orm org.springframework spring-test org.springframework spring-web org.hibernate hibernate-core mysql mysql-connector-java 5.1.6 runtime c3p0 c3p0 0.9.1.2 org.apache.struts struts2-core org.apache.struts struts2-spring-plugin javax.servlet servlet-api 2.5 provided javax.servlet jsp-api 2.0 provided org.slf4j slf4j-log4j12 1.7.2 junit junit 4.9 test javax.servlet jstl 1.2 org.apache.maven.plugins maven-compiler-plugin org.codehaus.mojo tomcat-maven-plugin 1.1 /ssh 8080
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的监听
org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:applicationContext.xml
10、 运行项目
7 分模块开发
依赖范围对依赖传递造成的影响(了解)
父工程来管理 聚合
7.1 创建父工程:
1、
2、创建出的父工程如下
3、在pom.Xml中添加以下信息:
4.2.4.RELEASE 5.0.7.Final 2.3.24 org.springframework spring-context ${spring.version} org.springframework spring-aspects ${spring.version} org.springframework spring-orm ${spring.version} org.springframework spring-test ${spring.version} org.springframework spring-web ${spring.version} org.hibernate hibernate-core ${hibernate.version} org.apache.struts struts2-core ${struts.version} org.apache.struts struts2-spring-plugin ${struts.version} org.springframework spring-context org.springframework spring-aspects org.springframework spring-orm org.springframework spring-test org.springframework spring-web org.hibernate hibernate-core mysql mysql-connector-java 5.1.6 runtime c3p0 c3p0 0.9.1.2 org.apache.struts struts2-core org.apache.struts struts2-spring-plugin javax.servlet servlet-api 2.5 provided javax.servlet jsp-api 2.0 provided org.slf4j slf4j-log4j12 1.7.2 junit junit 4.9 test javax.servlet jstl 1.2 org.apache.maven.plugins maven-compiler-plugin org.codehaus.mojo tomcat-maven-plugin 1.1 /ssh 8080
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监听
org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:applicationContext-*.xml
4、添加页面: