tnblog
首页
登录

多模块开发

339人阅读 2020/1/11 11:57 总访问:10770 评论:3 手机 收藏
分类: 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的依赖

    <dependencies>
        <!-- 依赖po模块 -->
        <dependency>
            <groupId>com.yujun.maven</groupId>
            <artifactId>maven-module-po</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>

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

    <dependencies>
        <!-- 依赖dao层 -->
        <dependency>
            <groupId>com.yujun.maven</groupId>
            <artifactId>maven-module-dao</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>

        

        

    3web模块的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模块

 1UserService

        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-apijsp-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>

   2UserServlet

    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目录下生产各自的打包文件


评价
sometimes ever,sometimes never
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2020TNBLOG.NET