Eclipse搭建java分布式商城项目-成都快上网建站

Eclipse搭建java分布式商城项目

博主也是在学习,看到一篇博客,自己一边学习,一边写下了这篇博客

创新互联是一家专业提供通州企业网站建设,专注与网站设计、成都网站建设、html5、小程序制作等业务。10年已为通州众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

项目模块划分
  • ycshop-parent: 父工程, 其打包方式是 pom, 主要管理 jar 包的版本号。 项目中的所有工程都应该继承父工程。
  • ycshop-common: 存放一些通用的工具类。 其打包方式为 jar, 被其他的工程所依赖。
  • ycshop-pojo: 存放 pojo 对象, 其打包方式是 jar。
  • ycshop-manager: 服务层工程, 又称之为聚合工程或 pom 工程。
  • ycshop-manager-dto: 数据传输对象。 (继承自 tyh-pojo 对象)
  • ycshop-manager-dao: 这是一个独立的模块, 其打包方式是 jar。
  • ycshop-manager-interfaces: 打包方式是 jar。
  • ycshop-manager-service: 打包方式是 war, 主要为了方便部署。
  • ycshop-manager-web: 表现层工程, 打包方式是 war。
搭建工程
1. 在这里我使用 maven 来搭建 ycshop-parent 这个父工程。

tyh-parent 本身就是一个父工程,所以它不需要继承其他的工程, 我们主要在父工程中定义依赖 jar 包的版本和 Maven 插件的版本信息。 注意, 此处我使用的 maven 是 apache-maven-3.3.9 这个版本。
首先点击【File】 菜单选项, 并在下拉框中选中【New】 , 接着点击【Other】!
Eclipse搭建java分布式商城项目
Eclipse搭建java分布式商城项目
Eclipse搭建java分布式商城项目
Eclipse搭建java分布式商城项目
修改pom文件,添加依赖


    4.0.0
    cn.yuechenc
    ycshop-parent
    0.0.1-SNAPSHOT
    pom

    
    
        4.12
        1.6.4
        
        4.3.18.RELEASE
        1.9.1
        1.0
        5.1.46
        0.9.5.2
        1.2
        2.5
        2.0
        2.9.6
        1.3.3
        3.4.6
        1.3.1
        5.1.2
    
    
        
            
            
                junit
                junit
                ${junit.version}
                test
            
            
            
                org.slf4j
                slf4j-log4j12
                ${slf4j.version}
            
            
            
                org.springframework
                spring-context
                ${spring.version}
            
            
                org.springframework
                spring-core
                ${spring.version}
            
            
                org.springframework
                spring-beans
                ${spring.version}
            
            
                org.springframework
                spring-webmvc
                ${spring.version}
            
            
                org.springframework
                spring-jdbc
                ${spring.version}
            
            
            
                org.aspectj
                aspectjrt
                ${aspectj.version}
            
            
                org.aspectj
                aspectjweaver
                ${aspectj.version}
            
            
                aopalliance
                aopalliance
                ${aopalliance.version}
            
            
            
                mysql
                mysql-connector-java
                ${mysql-connector.version}
            
            
            
                com.mchange
                c3p0
                ${c3p0.version}
            
            
            
                javax.servlet
                jstl
                ${jstl.version}
            
            
                javax.servlet
                servlet-api
                ${servlet-api.version}
                provided
            
            
                javax.servlet
                jsp-api
                ${jsp-api.version}
                provided
            
            
            
                com.fasterxml.jackson.core
                jackson-core
                ${jackson.version}
            
            
                com.fasterxml.jackson.core
                jackson-annotations
                ${jackson.version}
            
            
                com.fasterxml.jackson.core
                jackson-databind
                ${jackson.version}
            
            
            
                commons-fileupload
                commons-fileupload
                ${fileupload.version}
            
            
            
                org.mybatis
                mybatis
                ${mybatis.version}
            
            
            
                org.mybatis
                mybatis-spring
                ${mybatis-spring.version}
            
            
            
                com.github.pagehelper
                pagehelper
                ${pagehelper.version}
            
        
    
    
        ${project.artifactId}
        
            
            
                org.apache.maven.plugins
                maven-resources-plugin
                2.7
                
                    UTF-8
                
            
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.2
                
                    1.7
                    1.7
                    UTF-8
                
            
        
        
            
                
                
                    org.apache.tomcat.maven
                    tomcat7-maven-plugin
                    2.2
                
            
        
    

Pom.xml 文件说明:
1、 节点: 依赖管理, 管理的就是 jar 包的版本号, 它里面并
不是真正的依赖, 如果你继承 ycshop-parent 这个工程, 会发现什么 jar 包也没有依赖过来。 工
程中用到的所有 jar 包都应该在这里有定义。
2、 provided属性: 除了打包时不打包, 部署时也不会部署; 别的时候
都会全程参与, 编译、 测试、 运行时候都会用到。 因为我们要把这个 war 包部署到 tomcat
里面去, tomcat 里面都会提供 servlet 和 jsp 的 API, 如果把它也打包到 war 包里面, 可能会
有冲突。
3、 节点: pluginManagemen 也是管理插件的版本, 这里面并不是
对插件实际的依赖, 而只是管理插件的版本。

2. 搭建 ycshop-common 工程

ycshop-common 工程主要存放通用的工具类, 它本身是一个子工程, 所以它需要继承父工
程, 并且它的打包方式是 jar。 注意, ycshop-common 工程并不是一个独立的模块。
与创建 ycshop-parent 项目一样的操作方式, 创建一个【maven project】 。

Eclipse搭建java分布式商城项目
修改pom文件,添加依赖


    4.0.0
    
        cn.yuechenc
        ycshop-parent
        0.0.1-SNAPSHOT
    
    ycshop-common

    
    
        
        
            junit
            junit
            test
        
        
        
            org.slf4j
            slf4j-log4j12
        
    
3.搭建 ycshop-pojo 工程

ycshop-pojo 工程主要存放项目中通用的 pojo 对象。
和创建ycshop-commom工程同样的方法创建一个名为“ycshop-pojo”的maven工程
Eclipse搭建java分布式商城项目
修改pom文件,添加依赖


    4.0.0
    
        cn.yuechenc
        ycshop-parent
        0.0.1-SNAPSHOT
    
    ycshop-pojo

    
    
        
        
            junit
            junit
            test
        
    
4. 搭建 ycshop-manager 工程

搭建 ycshop-manager 工程, 这是后台管理子项目服务工程。 这个工程里面需要很多模块,
我们须把这些模块单独拆分, 所以它应该是一个聚合工程。
聚合工程选择 pom 打包形式。 并选择父项目 ycshop-parent
Eclipse搭建java分布式商城项目
修改pom文件,使其依赖于ycshop-common和ycshop-pojo工程


    4.0.0
    
        cn.yuechenc
        ycshop-parent
        0.0.1-SNAPSHOT
    
    ycshop-manager
    pom

    
        
            cn.yuechenc
            ycshop-common
            0.0.1-SNAPSHOT
        
        
            cn.yuechenc
            ycshop-pojo
            0.0.1-SNAPSHOT
        
    
5.搭建 ycshop-manager-dto 模块工程

Eclipse搭建java分布式商城项目
Eclipse搭建java分布式商城项目
此模块作为一个辅助的jar包,不需要其他的依赖。

6.搭建ycshop-manager-dao模块工程

搭建 tyh-manager-dao 模块的步骤同上面 tyh-manager-dto 一样, 只不过是模块名字改为
tyh-manager-dao 而已。
修改pom文件,添加dao层所需依赖


    4.0.0
    
        cn.yuechenc
        ycshop-manager
        0.0.1-SNAPSHOT
    
    ycshop-manager-dao

    
        
        
            cn.yuechenc
            ycshop-manager-dto
            0.0.1-SNAPSHOT
        
        
        
            junit
            junit
            test
        
        
        
            org.slf4j
            slf4j-log4j12
        
        
        
            mysql
            mysql-connector-java
        
        
        
            com.mchange
            c3p0
        
        
        
            org.mybatis
            mybatis
        
        
        
            org.mybatis
            mybatis-spring
        
        
        
            com.github.pagehelper
            pagehelper
        
    
7.搭建 ycshop-manager-interfaces 模块工程

ycshop-manager-interfaces 模块为 service 模块的接口模块。
搭建方式与 dao 模块的搭建方式一致, 打包方式为 jar 包方式。(此处省略)
修改pom文件,使其依赖于dto和dao两个模块。


    4.0.0
    
        cn.yuechenc
        ycshop-manager
        0.0.1-SNAPSHOT
    
    ycshop-manager-interfaces

    
        
        
            cn.yuechenc
            ycshop-manager-dto
            0.0.1-SNAPSHOT
        
        
        
            cn.yuechenc
            ycshop-manager-dao
            0.0.1-SNAPSHOT
        
    
8.搭建 ycshop-manager-service 模块工程

该模块是个 war 工程, 既然 tyh-manager 工程是个聚合工程, 故可以聚合无数个模块,
但是总归要靠一个 war 工程来将所有的模块聚合起来, 因此我们才需要新建一个 war 工程,
将来用于部署使用(可以单独部署 service 应用做到前后端分离) 。

Eclipse搭建java分布式商城项目
此时工程会报错,是因为缺少web.xml文件
Eclipse搭建java分布式商城项目
在图中的webapp文件夹下创建WEB-INF文件夹,在他下面创建一个xml文件,内容如下:



Eclipse搭建java分布式商城项目
此时已近解决了报错的问题,接下来开始添加依赖——服务处需要调用dao层,所以要依赖于dao,另外还需要使用spring,


    4.0.0
    
        cn.yuechenc
        ycshop-manager
        0.0.1-SNAPSHOT
    
    ycshop-manager-service
    war

    
        
        
            cn.yuechenc
            ycshop-manager-dao
            0.0.1-SNAPSHOT
        
        
        
            cn.yuechenc
            ycshop-manager-interfaces
            0.0.1-SNAPSHOT
        
        
        
            org.springframework
            spring-context
        
        
            org.springframework
            spring-core
        
        
            org.springframework
            spring-beans
        
        
            org.springframework
            spring-webmvc
        
        
            org.springframework
            spring-jdbc
        
        
        
            org.aspectj
            aspectjrt
        
        
            org.aspectj
            aspectjweaver
        
        
            aopalliance
            aopalliance
        
    
9.搭建 ycshop-manager-web 工程

ycshop-manager-web 工程虽然从名称上看好像是一个 ycshop-manager 的子工程。 但是在创建
的时候为了让服务和前端页面分离开来, 最好是将 web 工程单独作为一个项目, 不要作为
聚合工程的子工程
Eclipse搭建java分布式商城项目
Eclipse搭建java分布式商城项目
因为是war打包方式,同样会报错,解决方式和service一样
修改pom文件,添加依赖


    4.0.0
    
        cn.yuechenc
        ycshop-parent
        0.0.1-SNAPSHOT
    
    ycshop-manager-web
    war

    
        
        
            junit
            junit
            test
        
        
        
            org.slf4j
            slf4j-log4j12
        
        
        
            org.springframework
            spring-context
        
        
            org.springframework
            spring-core
        
        
            org.springframework
            spring-beans
        
        
            org.springframework
            spring-webmvc
        
        
            org.aspectj
            aspectjrt
        
        
            org.aspectj
            aspectjweaver
        
        
            aopalliance
            aopalliance
        
        
        
            javax.servlet
            jstl
        
        
            javax.servlet
            servlet-api
            provided
        
        
            javax.servlet
            jsp-api
            provided
        
    

到此,我们的第一个系统架构就算是搭建完成了

10.使用 maven tomcat 插件启动工程

如果要运行 web 工程, 按照传统的方式应该是将其发布到一个 tomcat 服务器中, 然后
启动服务器来运行这个工程。
但是在这里我们应该在其 pom.xml 文件中配置一个 maven 的 tomcat 插件。 那么为什么
要使用 maven tomcat 插件来启动 web 工程呢?
这是因为在互联网项目中, 动辄十几个甚至好几十个 web 工程, 如果按照传统的添加
tomcat 服务器的方式来启动的话, 那么我们为了避免端口冲突, 每增加一个 web 工程都要
修改三个端口, 非常麻烦。 而使用 maven tomcat 插件来启动工程, 则只需改一个端口即可,
显然简单了很多。
先来看 web 工程。 它可以独立运行, 那么应该怎么运行呢?
为了方便测试, 在 webapp 文件夹下, 创建一个 Index.jsp 文件。 如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


    

欢迎进入越宸阁!

在web工程的pom文件中加入tomcat插件


    
        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                
                    8080
                    /
                
            
        
    

说明:
1、 其中<path>/<path>的意思是输入完 localhost:端口号之后便可以直接访问工程首页了
2、 <port>8080</port>的意思是指定该 web 工程的访问端口号。
此时我们最好对之前的项目都进行install使其重新编译
因为项目之间存在依赖关系,所以最好按照创建顺序依次install
Eclipse搭建java分布式商城项目
下面,我们启动项目
Eclipse搭建java分布式商城项目
在 Goals 输入框中输入: clean tomcat7:run, 点击【Apply】 和【Run】 来运行该 web 工程。
Eclipse搭建java分布式商城项目
运行完成,会在控制台打印出运行的url和端口
Eclipse搭建java分布式商城项目
最后,我们在浏览器中访问此url
Eclipse搭建java分布式商城项目

11.使用 maven tomcat 插件启动聚合工程

与上一节基本一样。 在 ycshop-manager 项目 pom.xml 中配置 tomcat 插件。 并修改其端口,
与 web 项目端口不同。


    
        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                
                    8081
                    /
                
            
        
    

和启动web同样的方法启动manager项目
此时会打印出8081端口的url
Eclipse搭建java分布式商城项目
到此我们的工程就算是搭建完成了。

下一篇,将会对整个系统进行ssm框架的整合


标题名称:Eclipse搭建java分布式商城项目
文章源于:http://kswjz.com/article/psoohs.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流