0
点赞
收藏
分享

微信扫一扫

maven教程5(聚合工程)

  所谓聚合项目,实际上就是对项目分模块,互联网项目一般来说按照业务分(订单模块、VIP模块、支付模块、CMS模块…),传统的软件项目,大多采用分层的方式(Dao、Serivce、Controller):

一、多模块结构

bobo-parent       pom  管理 
|-- bobo-manager pom 管理
|-- bobo-manager-dao jar
|-- bobo-manager-service jar
|-- bobo-manager-model jar
|-- bobo-manager-commons jar
|-- bobo-manager-controller war

二、创建项目

1.创建bobo-parent

pom文件不需要写代码,只是起管理作用
maven教程5(聚合工程)_spring

2.创建bobo-manager项目

指定bobo-parent为其父项目
maven教程5(聚合工程)_spring_02

3.分别创建四个jar项目

项目类型为 maven model
maven教程5(聚合工程)_mvc_03maven教程5(聚合工程)_xml_04maven教程5(聚合工程)_spring_05
相同的步骤创建其他3个jar项目
maven教程5(聚合工程)_spring_06

4.创建bobo-manager-controller项目

maven教程5(聚合工程)_spring_07maven教程5(聚合工程)_maven_08

<dependencies> 
<!-- 因为是web项目所以需要servlet --> <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins> <!-- tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration> <!-- 端口号 -->
<port>8082</port> <!-- /表示访问路径 省略项目名 -->
<path>/</path> <!-- 设置编码方式 -->
<uriEncoding>utf-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>

maven教程5(聚合工程)_mvc_09

三、设置相互依赖

1.依赖关系介绍

完整依赖关系

依赖 依赖 依赖 依赖 controller service dao model commons

控制层的依赖关系

依赖 依赖 依赖 依赖 controller service dao model commons

service层的依赖关系

依赖 依赖 依赖 service dao model commons

dao层的依赖关系

依赖 依赖 dao model commons

2.实现依赖关系

2.1项目打包

1.先对bobo-parent项目打包

maven教程5(聚合工程)_xml_10本地仓库就会生成打包的内容
maven教程5(聚合工程)_聚合工程_11

2.再对bobo-manager项目打包

maven教程5(聚合工程)_mvc_12maven教程5(聚合工程)_mvc_13
成功后本地仓库

maven教程5(聚合工程)_xml_14maven教程5(聚合工程)_maven_15

2.2添加依赖关系

1.controller依赖service

<!-- 配置依赖的service坐标 -->
<dependency>
<groupId>com.dpb</groupId>
<artifactId>bobo-manager-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

maven教程5(聚合工程)_maven_16

2.service依赖dao

<!-- 配置依赖的Dao坐标 -->
<dependency>
<groupId>com.dpb</groupId>
<artifactId>bobo-manager-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

maven教程5(聚合工程)_xml_17

同时controller也会依赖dao,间接依赖
maven教程5(聚合工程)_mvc_18

3.dao依赖model和Commons

<dependencies>
<!-- 配置依赖的model和Commons的坐标 -->
<dependency>
<groupId>com.dpb</groupId>
<artifactId>bobo-manager-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dpb</groupId>
<artifactId>bobo-manager-commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>

maven教程5(聚合工程)_聚合工程_19

3.Spring和SpringMVC整合

3.1在dao中引入spring

<properties>
<spirng.version>4.3.3.RELEASE</spirng.version>
</properties>
<dependencies>
<!-- 配置依赖的model和Commons的坐标 -->
<dependency>
<groupId>com.dpb</groupId>
<artifactId>bobo-manager-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dpb</groupId>
<artifactId>bobo-manager-commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

<!-- 1.spring相关的jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spirng.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spirng.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spirng.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spirng.version}</version>
</dependency>

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.6.2</version>
</dependency>
<!-- 数据库驱动包 这个是从私服上关联的-->
<dependency>
<groupId>com.dpb.oracle</groupId>
<artifactId>ojdbc6-dpb</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>

3.2在controller中引入springmvc

在controller中添加的是其他项目不需要用的jar包,比如servlet。

<properties>
<spirng.version>4.3.3.RELEASE</spirng.version>
</properties>

<dependencies>
<!-- 因为是web项目所以需要servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- 配置依赖的service坐标 -->
<dependency>
<groupId>com.dpb</groupId>
<artifactId>bobo-manager-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

<!-- 2.和springMvc相关的jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spirng.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>

maven教程5(聚合工程)_聚合工程_20
spring配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" 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/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

<!-- 开启扫描 -->
<context:component-scan base-package="com.dpb.service.impl,com.dpb.dao.impl">
<!-- 扫描的时候显示的排除controller注解 -->
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>

<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource"
id="ds">
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="username" value="pms" />
<property name="password" value="pms" />
</bean>
<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
<constructor-arg name="dataSource" ref="ds"/>
</bean>
</beans>

SpringMVC的配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

<!-- 开启注解 -->
<mvc:annotation-driven ></mvc:annotation-driven>
<!-- 开启扫描 -->
<context:component-scan base-package="com.dpb.controller">
<!-- 只扫描指定路径下的controller注解 -->
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
</beans>

3.3在controller中配置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" >

<!-- 这里配置Spring配置文件的位置,param-name是固定的, param-value是文件位置 这个配置可以省略,
如果省略, 系统默认去/WEB-INF/目录下查找applicationContext.xml作为Spring的配置文件 -->
<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>

<!-- 前端控制器 -->
<servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
</web-app>

3.4实现查询操作

1.在bobo-manager-model中创建User对象

maven教程5(聚合工程)_xml_21

public class User {

private int id;

private String uname;

private String nickname;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getUname() {
return uname;
}

public void setUname(String uname) {
this.uname = uname;
}

public String getNickname() {
return nickname;
}

public void setNickname(String nickname) {
this.nickname = nickname;
}
}

2.在bobo-manager-dao实现数据库操作

maven教程5(聚合工程)_mvc_22

public interface IUserDao {

public List<User> query();
}
@Repository
public class UserDaoImpl implements IUserDao {

@Resource
JdbcTemplate jdbcTemplate;

@Override
public List<User> query() {
String sql = "select * from t_sysuser";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
}

}

3.在bobo-manager-service中操作Dao

maven教程5(聚合工程)_spring_23

public interface IUserService {

public List<User> query();

}
@Service
public class UserServiceImpl implements IUserService {

@Resource
private IUserDao dao;

@Override
public List<User> query() {
// TODO Auto-generated method stub
return dao.query();
}

}

4.在bobo-manager-controller中处理请求响应

@Controller
public class UserController {

@Resource
private IUserService userService;

@RequestMapping("/query")
public String query(Model m){
m.addAttribute("list", userService.query());
return "/user.jsp";
}
}

maven教程5(聚合工程)_spring_24

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forEach items="${list }" var="u">
${u.id } --${u.uname }--${u.nickname }<br>
</c:forEach>
</body>
</html>

5.测试

对bobo-manager打包
maven教程5(聚合工程)_maven_25
然后启动 bobo-manager-controller项目
maven教程5(聚合工程)_maven_26
maven教程5(聚合工程)_mvc_27成功!!!


举报

相关推荐

0 条评论