分类:
JAVA
通常项目中,需要把项目分层。通常分为po(模型层)、dao(数据访问层)、service(业务逻辑层)、web(表现层)。以前分层通过package来实现的。
在maven中通过模块来进行划分的。
Maven项目模块结构:
Parent – 父项目
Pom.xml
Po – 实体类
Pom.xml
Dao – 数据访问
Pom.xml
Service – 业务逻辑
Pom.xml
Web – 视图
Pom.xml
需要为上述的每个模块创建一个单独的模型项目。在maven中通过maven的依赖关系来建立各个模块之间的联系。
注意:
Po、dao、service、web模块都必须去继承parent。
Parent模块打包类型必须是pom
Web模块打包类型必须是war
Po、dao、service模块打包类型必须是jar
模块依赖关系
(1) web -- > po、service
(2) service -- > po、dao
(3) dao -- > po

依赖的传递性
Dao模块依赖po、service依赖dao、那么service自动依赖于po
步骤
创建parent父项目

po模块



Dao、service和po一样的
web模块

设置依赖关系
(1) web -- > po、service
(2) service -- > po、dao
(3) dao -- > po
1)dao模块的pom.xml中添加po的依赖
<dependencies> <!-- 依赖po模块 --> <dependency> <groupId>com.yujun.maven</groupId> <artifactId>maven-module-po</artifactId> <version>1.0</version> </dependency> </dependencies>
2)service模块的pom.xml中添加dao的依赖
<dependencies> <!-- 依赖dao层 --> <dependency> <groupId>com.yujun.maven</groupId> <artifactId>maven-module-dao</artifactId> <version>1.0</version> </dependency> </dependencies>

3)web模块的pom.xml中配置service的依赖
<dependencies> <dependency> <groupId>com.yujun.maven</groupId> <artifactId>maven-module-service</artifactId> <version>1.0</version> </dependency> </dependencies>
代码编写
po模块
1)User类
package com.maven.po;
public class User {
private String name;
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "User [name="+name+",pwd="+pwd+"]";
}
} dao模块
1)UserDao类
package com.maven.dao;
import com.maven.po.User;
public class UserDao {
//查询一个用户
public User findUser() {
User user = new User();
user.setName("小白");
user.setPwd("123456");
return user;
}
}service模块
1)UserService类
package com.maven.service;
import com.maven.dao.UserDao;
import com.maven.po.User;
public class UserService {
private UserDao dao = new UserDao();
//调用dao获取用户信息
public User getUser(){
return dao.getUser();
}
}web模块
1)需要添加servlet-api和jsp-api的依赖
<!-- servlet-api依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- servlet.jsp-api依赖 --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency>
2)UserServlet类
package com.maven.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.maven.po.User;
import com.maven.service.UserService;
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
//调用service中的方法,获取用户
UserService userService = new UserService();
User user = userService.getUser();
System.out.println(user);
request.setAttribute("user", user);
request.getRequestDispatcher("user.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}3)运行
只需要把web模块项目添加到tomcat中启动即可访问。
打包
打包时,只需要在parent项目 -- > 右键 -- > run as -- > maven install
就可以在各个模块的target目录下生产各自的打包文件
50010702506256