tnblog
首页
视频
资源
登录

多模块开发

6380人阅读 2020/1/11 11:57 总访问:169833 评论:3 收藏:0 手机
分类: 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依赖关系来建立各个模块之间的联系。

 

    注意:

             Podaoserviceweb模块都必须去继承parent

             Parent模块打包类型必须是pom

             Web模块打包类型必须是war

             Podaoservice模块打包类型必须是jar

    模块依赖关系

    (1)       web  -- > poservice

    (2)       service  -- > podao

    (3)       dao -- > po

    依赖的传递性

        Dao模块依赖po、service依赖dao、那么service自动依赖于po


步骤

  创建parent父项目

                

    po模块

        

        Daoservicepo一样的

web模块

 

设置依赖关系

    (1)       web  -- > poservice

    (2)       service  -- > podao

    (3)       dao -- > po

    1dao模块的pom.xml中添加po的依赖

  1.     <dependencies>
  2.         <!-- 依赖po模块 -->
  3.         <dependency>
  4.             <groupId>com.yujun.maven</groupId>
  5.             <artifactId>maven-module-po</artifactId>
  6.             <version>1.0</version>
  7.         </dependency>
  8.     </dependencies>

    2service模块的pom.xml中添加dao的依赖

  1.     <dependencies>
  2.         <!-- 依赖dao层 -->
  3.         <dependency>
  4.             <groupId>com.yujun.maven</groupId>
  5.             <artifactId>maven-module-dao</artifactId>
  6.             <version>1.0</version>
  7.         </dependency>
  8.     </dependencies>

        

        

    3web模块的pom.xml中配置service的依赖

  1.     <dependencies>
  2.         <dependency>
  3.             <groupId>com.yujun.maven</groupId>
  4.             <artifactId>maven-module-service</artifactId>
  5.             <version>1.0</version>
  6.         </dependency>
  7.     </dependencies>

代码编写

 po模块

 1)User

  1.     package com.maven.po;
  2.         public class User {
  3.          private String name;
  4.          private String pwd;
  5.          public String getName() {
  6.          return name;
  7.          }
  8.          public void setName(String name) {
  9.          this.name = name;
  10.          }
  11.          public String getPwd() {
  12.          return pwd;
  13.          }
  14.          public void setPwd(String pwd) {
  15.          this.pwd = pwd;
  16.          }
  17.          @Override
  18.          public String toString() {
  19.          // TODO Auto-generated method stub
  20.          return "User [name="+name+",pwd="+pwd+"]";
  21.          }
  22.         }

 dao模块    
    1)UserDao

  1.     package com.maven.dao;
  2.         import com.maven.po.User;
  3.         
  4.         public class UserDao {
  5.             //查询一个用户
  6.             public User findUser() {
  7.                 User user = new User();
  8.                 user.setName("小白");
  9.                 user.setPwd("123456");
  10.                 return user;
  11.             }
  12.         }

    service模块

 1UserService

  1.         package com.maven.service;
  2.     
  3.         import com.maven.dao.UserDao;
  4.         import com.maven.po.User;
  5.         
  6.         public class UserService {
  7.          private UserDao dao = new UserDao();
  8.          //调用dao获取用户信息
  9.          public User getUser(){
  10.          return dao.getUser();
  11.          }
  12.         }

    web模块

 1需要添加servlet-apijsp-api的依赖

  1.     <!-- servlet-api依赖 -->
  2.     <dependency>
  3.         <groupId>javax.servlet</groupId>
  4.         <artifactId>javax.servlet-api</artifactId>
  5.         <version>3.1.0</version>
  6.         <scope>provided</scope>
  7.     </dependency>
  8.     <!-- servlet.jsp-api依赖 -->
  9.     <dependency>
  10.         <groupId>javax.servlet.jsp</groupId>
  11.         <artifactId>javax.servlet.jsp-api</artifactId>
  12.         <version>2.3.3</version>
  13.         <scope>provided</scope>
  14.     </dependency>

   2UserServlet

  1.     package com.maven.servlet;
  2.     
  3.     import java.io.IOException;
  4.     import javax.servlet.ServletException;
  5.     import javax.servlet.http.HttpServlet;
  6.     import javax.servlet.http.HttpServletRequest;
  7.     import javax.servlet.http.HttpServletResponse;
  8.     
  9.     import com.maven.po.User;
  10.     import com.maven.service.UserService;
  11.     
  12.     public class UserServlet extends HttpServlet {
  13.      private static final long serialVersionUID = 1L;
  14.            
  15.      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  16.      // TODO Auto-generated method stub
  17.      request.setCharacterEncoding("utf-8");
  18.      //调用service中的方法,获取用户
  19.      UserService userService = new UserService();
  20.      User user = userService.getUser();
  21.      System.out.println(user);
  22.      request.setAttribute("user", user);
  23.      request.getRequestDispatcher("user.jsp").forward(request, response);
  24.      }
  25.     
  26.      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  27.      // TODO Auto-generated method stub
  28.      doGet(request, response);
  29.      }
  30.     
  31.     }

    3)运行

    只需要把web模块项目添加到tomcat中启动即可访问

    打包

        打包时,只需要在parent项目 -- > 右键 -- > run as -- > maven install

        就可以在各个模块的target目录下生产各自的打包文件


评价

剑轩

2020/1/11 20:37:44

.net天生多模块

饰心:@剑轩那我+1

2020/1/14 13:36:49 回复

剑轩:@饰心那我+2

2020/1/14 16:07:00 回复

sometimes ever,sometimes never
排名
21
文章
27
粉丝
11
评论
12
MySQL数据库基础
剑轩 : 大神教我学mysql!
MySQL概述与安装配置
剑轩 : PHP是目前最流行的 Web 开发语言
JAVA8 十大新特性详解
叼着奶瓶逛酒吧 : 文章写得真心不错,加油哈
Java学习 - Java语言基础
剑轩 : 每个小标题颜色加深一点会更好哦
Java学习 - Java语言简介
剑轩 : 请注意,java大神开讲了
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
相思只在:丁香枝上,豆蔻梢头。