博主也是在學(xué)習(xí),看到一篇博客,自己一邊學(xué)習(xí),一邊寫下了這篇博客
創(chuàng)新互聯(lián)是一家專業(yè)提供通州企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為通州眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。
tyh-parent 本身就是一個父工程,所以它不需要繼承其他的工程, 我們主要在父工程中定義依賴 jar 包的版本和 Maven 插件的版本信息。 注意, 此處我使用的 maven 是 apache-maven-3.3.9 這個版本。
首先點擊【File】 菜單選項, 并在下拉框中選中【New】 , 接著點擊【Other】!
修改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
UTF-8
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
Pom.xml 文件說明:
1、
不是真正的依賴, 如果你繼承 ycshop-parent 這個工程, 會發(fā)現(xiàn)什么 jar 包也沒有依賴過來。 工
程中用到的所有 jar 包都應(yīng)該在這里有定義。
2、
都會全程參與, 編譯、 測試、 運行時候都會用到。 因為我們要把這個 war 包部署到 tomcat
里面去, tomcat 里面都會提供 servlet 和 jsp 的 API, 如果把它也打包到 war 包里面, 可能會
有沖突。
3、
對插件實際的依賴, 而只是管理插件的版本。
ycshop-common 工程主要存放通用的工具類, 它本身是一個子工程, 所以它需要繼承父工
程, 并且它的打包方式是 jar。 注意, ycshop-common 工程并不是一個獨立的模塊。
與創(chuàng)建 ycshop-parent 項目一樣的操作方式, 創(chuàng)建一個【maven project】 。
修改pom文件,添加依賴
4.0.0
cn.yuechenc
ycshop-parent
0.0.1-SNAPSHOT
ycshop-common
junit
junit
test
org.slf4j
slf4j-log4j12
ycshop-pojo 工程主要存放項目中通用的 pojo 對象。
和創(chuàng)建ycshop-commom工程同樣的方法創(chuàng)建一個名為“ycshop-pojo”的maven工程
修改pom文件,添加依賴
4.0.0
cn.yuechenc
ycshop-parent
0.0.1-SNAPSHOT
ycshop-pojo
junit
junit
test
搭建 ycshop-manager 工程, 這是后臺管理子項目服務(wù)工程。 這個工程里面需要很多模塊,
我們須把這些模塊單獨拆分, 所以它應(yīng)該是一個聚合工程。
聚合工程選擇 pom 打包形式。 并選擇父項目 ycshop-parent
修改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
此模塊作為一個輔助的jar包,不需要其他的依賴。
搭建 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
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
該模塊是個 war 工程, 既然 tyh-manager 工程是個聚合工程, 故可以聚合無數(shù)個模塊,
但是總歸要靠一個 war 工程來將所有的模塊聚合起來, 因此我們才需要新建一個 war 工程,
將來用于部署使用(可以單獨部署 service 應(yīng)用做到前后端分離) 。
此時工程會報錯,是因為缺少web.xml文件
在圖中的webapp文件夾下創(chuàng)建WEB-INF文件夾,在他下面創(chuàng)建一個xml文件,內(nèi)容如下:
此時已近解決了報錯的問題,接下來開始添加依賴——服務(wù)處需要調(diào)用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
ycshop-manager-web 工程雖然從名稱上看好像是一個 ycshop-manager 的子工程。 但是在創(chuàng)建
的時候為了讓服務(wù)和前端頁面分離開來, 最好是將 web 工程單獨作為一個項目, 不要作為
聚合工程的子工程
因為是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
到此,我們的第一個系統(tǒng)架構(gòu)就算是搭建完成了
如果要運行 web 工程, 按照傳統(tǒng)的方式應(yīng)該是將其發(fā)布到一個 tomcat 服務(wù)器中, 然后
啟動服務(wù)器來運行這個工程。
但是在這里我們應(yīng)該在其 pom.xml 文件中配置一個 maven 的 tomcat 插件。 那么為什么
要使用 maven tomcat 插件來啟動 web 工程呢?
這是因為在互聯(lián)網(wǎng)項目中, 動輒十幾個甚至好幾十個 web 工程, 如果按照傳統(tǒng)的添加
tomcat 服務(wù)器的方式來啟動的話, 那么我們?yōu)榱吮苊舛丝跊_突, 每增加一個 web 工程都要
修改三個端口, 非常麻煩。 而使用 maven tomcat 插件來啟動工程, 則只需改一個端口即可,
顯然簡單了很多。
先來看 web 工程。 它可以獨立運行, 那么應(yīng)該怎么運行呢?
為了方便測試, 在 webapp 文件夾下, 創(chuàng)建一個 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使其重新編譯
因為項目之間存在依賴關(guān)系,所以最好按照創(chuàng)建順序依次install
下面,我們啟動項目
在 Goals 輸入框中輸入: clean tomcat7:run, 點擊【Apply】 和【Run】 來運行該 web 工程。
運行完成,會在控制臺打印出運行的url和端口
最后,我們在瀏覽器中訪問此url
與上一節(jié)基本一樣。 在 ycshop-manager 項目 pom.xml 中配置 tomcat 插件。 并修改其端口,
與 web 項目端口不同。
org.apache.tomcat.maven
tomcat7-maven-plugin
8081
/
和啟動web同樣的方法啟動manager項目
此時會打印出8081端口的url
到此我們的工程就算是搭建完成了。
下一篇,將會對整個系統(tǒng)進行ssm框架的整合