
通常项目中,需要把项目分层。通常分为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目录下生产各自的打包文件


剑轩
.net天生多模块