成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SSM(十) 項目重構-互聯網項目的Maven結構

開發 項目管理
這個博文其實很早就想寫了。 之前所有的代碼都是在一個模塊里面進行開發,這和maven的理念是完全不相符的,最近硬是抽了一個時間來對項目的結構進行了一次重構。

前言

很久沒有更新博客了,之前定下周更逐漸成了月更。怎么感覺像我追過的一部動漫。 這個博文其實很早就想寫了。 之前所有的代碼都是在一個模塊里面進行開發,這和maven的理念是完全不相符的,最近硬是抽了一個時間來對項目的結構進行了一次重構。

前言

很久沒有更新博客了,之前定下周更逐漸成了月更。怎么感覺像我追過的一部動漫。 這個博文其實很早就想寫了。 之前所有的代碼都是在一個模塊里面進行開發,這和maven的理念是完全不相符的,最近硬是抽了一個時間來對項目的結構進行了一次重構。

[[184668]]

先來看看這次重構之后的目錄結構

1.jpg

為什么需要分模塊

至于為什么要分模塊呢?

我們設想一個這樣的場景: 在現在的互聯網開發中,會把一個很大的系統拆分成各個子系統用于降低他們之間的耦合度。

在一個子項目中通常都會為APIWEBService等模塊。 而且當項目夠大時,這些通常都不是一個人能完成的工作,需要一個團隊來各司其職。

想象一下:當之前所有的項目都在一個模塊的時候,A改動了API,需要Deploy代碼。而B也改動了service的代碼,但并沒有完全做完。所以A在提交build的時候就會報錯

而且在整個項目足夠大的時候,這個build的時間也是很影響效率的。

但讓我將各個模塊之間分開之后效果就不一樣了。我修改了API我就只需要管我的就行,不需要整個項目進行build

而且當有其他項目需要依賴我這個API的時候也只需要依賴API即可,不用整個項目都依賴過去。

各個模塊的作用

來看下這次我所分的模塊。

ROOT

這是整個項目的根節點。 先看一下其中的pom.xml

  1. <groupId>com.crossoverJie</groupId> 
  2.     <artifactId>SSM</artifactId> 
  3.     <packaging>pom</packaging> 
  4.     <version>2.0.0</version> 
  5.  
  6.     <modules> 
  7.         <module>SSM-API</module> 
  8.         <module>SSM-BOOT</module> 
  9.         <module>SSM-SERVICE</module> 
  10.         <module>SSM-WEB</module> 
  11.     </modules> 
  12.  
  13.     <properties> 
  14.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
  15.         <spring.version>4.1.4.RELEASE</spring.version> 
  16.         <jackson.version>2.5.0</jackson.version> 
  17.         <lucene.version>6.0.1</lucene.version> 
  18.     </properties> 
  19.  
  20.  
  21.     <dependencyManagement> 
  22.  
  23.         <dependencies> 
  24.             <dependency> 
  25.                 <groupId>com.crossoverJie</groupId> 
  26.                 <artifactId>SSM-API</artifactId> 
  27.                 <version>2.0.0</version> 
  28.             </dependency> 
  29.          </dependencies> 
  30.     </dependencyManagement> 

我截取了其中比較重點的配置。

由于這是父節點,所以我的packag類型使用的是pom。 其中分別有著四個子模塊。

其中重點看下<dependencyManagement>這個標簽。 如果使用的是IDEA這個開發工具的話是可以看到如下圖:

2.jpg

標紅的有一個向下的箭頭,點一下就可以進入子模塊中相同的依賴。 這樣子模塊就不需要配置具體的版本了,統一由父模塊來進行維護,對之后的版本升級也帶來了好處。

SSM-API

接下來看下API這個模塊:

通常這個模塊都是用于定義外部接口的,以及改接口所依賴的一些DTO類。 一般這個模塊都是拿來給其他項目進行依賴,并和本項目進行數據交互的。

SSM-BOOT

BOOT這個模塊比較特殊。 可以看到這里沒有任何代碼,只有一個rpc的配置文件。 通常這個模塊是用于給我們內部項目進行依賴的,并不像上面的API模塊一樣給其他部門或者是項目進行依賴的。

因為在我們的RPC調用的時候,用dubbo來舉例,是需要配置所依賴的consumer

但如果是我們自己內部調用的話我們就可以把需要調用自己的dubbo服務提供者配置在這里,這樣的話我們自己調用就只需要依賴這個BOOT就可以進行調用了。

哦對了,BOOT同時還會依賴API,這樣才實現了只依賴BOOT就可以調用自己內部的dubbo服務了。 如下所示:

  1. <dependencies> 
  2.         <dependency> 
  3.             <groupId>junit</groupId> 
  4.             <artifactId>junit</artifactId> 
  5.             <scope>test</scope> 
  6.         </dependency> 
  7.  
  8.         <dependency> 
  9.             <groupId>com.crossoverJie</groupId> 
  10.             <artifactId>SSM-API</artifactId> 
  11.         </dependency> 
  12.  
  13.     </dependencies> 

SSM-SERVICE

SERVICE模塊就比較好理解了。 是處理具體業務邏輯的地方,也是對之前的API的實現。

通常這也是一個web模塊,所以我的pom類型是WAR

SSM-WEB

其實WEB模塊和SERVICE模塊有點重合了。通常來說這個模塊一般在一個對外提供http訪問接口的項目中。

這里只是為了展示項目結構,所以也寫在了這里。

他的作用和service差不多,都是WAR的類型。

總結

這次沒有實現什么特別的功能,只是對一些還沒有接觸過這種項目結構開發的童鞋能起到一些引導作用。

具體源碼還請關注我的github

項目地址:https://github.com/crossoverJie/SSM.git

個人博客地址:http://crossoverjie.top

GitHub地址:https://github.com/crossoverJie

先來看看這次重構之后的目錄結構

1.jpg

為什么需要分模塊

至于為什么要分模塊呢?

我們設想一個這樣的場景: 在現在的互聯網開發中,會把一個很大的系統拆分成各個子系統用于降低他們之間的耦合度。

在一個子項目中通常都會為APIWEBService等模塊。 而且當項目夠大時,這些通常都不是一個人能完成的工作,需要一個團隊來各司其職。

想象一下:當之前所有的項目都在一個模塊的時候,A改動了API,需要Deploy代碼。而B也改動了service的代碼,但并沒有完全做完。所以A在提交build的時候就會報錯

而且在整個項目足夠大的時候,這個build的時間也是很影響效率的。

但讓我將各個模塊之間分開之后效果就不一樣了。我修改了API我就只需要管我的就行,不需要整個項目進行build

而且當有其他項目需要依賴我這個API的時候也只需要依賴API即可,不用整個項目都依賴過去。

各個模塊的作用

來看下這次我所分的模塊。

ROOT

這是整個項目的根節點。 先看一下其中的pom.xml

<groupId>com.crossoverJie</groupId>     <artifactId>SSM</artifactId>     <packaging>pom</packaging>     <version>2.0.0</version>      <modules>         <module>SSM-API</module>         <module>SSM-BOOT</module>         <module>SSM-SERVICE</module>         <module>SSM-WEB</module>     </modules>      <properties>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>         <spring.version>4.1.4.RELEASE</spring.version>         <jackson.version>2.5.0</jackson.version>         <lucene.version>6.0.1</lucene.version>     </properties>       <dependencyManagement>          <dependencies>             <dependency>                 <groupId>com.crossoverJie</groupId>                 <artifactId>SSM-API</artifactId>                 <version>2.0.0</version>             </dependency>          </dependencies>     </dependencyManagement> 

我截取了其中比較重點的配置。

由于這是父節點,所以我的packag類型使用的是pom。 其中分別有著四個子模塊。

其中重點看下<dependencyManagement>這個標簽。 如果使用的是IDEA這個開發工具的話是可以看到如下圖:

2.jpg

標紅的有一個向下的箭頭,點一下就可以進入子模塊中相同的依賴。 這樣子模塊就不需要配置具體的版本了,統一由父模塊來進行維護,對之后的版本升級也帶來了好處。

SSM-API

接下來看下API這個模塊:

通常這個模塊都是用于定義外部接口的,以及改接口所依賴的一些DTO類。 一般這個模塊都是拿來給其他項目進行依賴,并和本項目進行數據交互的。

SSM-BOOT

BOOT這個模塊比較特殊。 可以看到這里沒有任何代碼,只有一個rpc的配置文件。 通常這個模塊是用于給我們內部項目進行依賴的,并不像上面的API模塊一樣給其他部門或者是項目進行依賴的。

因為在我們的RPC調用的時候,用dubbo來舉例,是需要配置所依賴的consumer

但如果是我們自己內部調用的話我們就可以把需要調用自己的dubbo服務提供者配置在這里,這樣的話我們自己調用就只需要依賴這個BOOT就可以進行調用了。

哦對了,BOOT同時還會依賴API,這樣才實現了只依賴BOOT就可以調用自己內部的dubbo服務了。 如下所示:

    <dependencies>         <dependency>             <groupId>junit</groupId>             <artifactId>junit</artifactId>             <scope>test</scope>         </dependency>          <dependency>             <groupId>com.crossoverJie</groupId>             <artifactId>SSM-API</artifactId>         </dependency>      </dependencies> 

SSM-SERVICE

SERVICE模塊就比較好理解了。 是處理具體業務邏輯的地方,也是對之前的API的實現。

通常這也是一個web模塊,所以我的pom類型是WAR

SSM-WEB

其實WEB模塊和SERVICE模塊有點重合了。通常來說這個模塊一般在一個對外提供http訪問接口的項目中。

這里只是為了展示項目結構,所以也寫在了這里。

他的作用和service差不多,都是WAR的類型。

總結

這次沒有實現什么特別的功能,只是對一些還沒有接觸過這種項目結構開發的童鞋能起到一些引導作用。

具體源碼還請關注我的github

項目地址:https://github.com/crossoverJie/SSM.git

個人博客地址:http://crossoverjie.top

GitHub地址:https://github.com/crossoverJie

責任編輯:張燕妮 來源: 開源中國社區
相關推薦

2021-01-14 11:05:41

項目配置屬性

2011-06-03 09:59:52

移動互聯網項目合作峰會移動互聯網即將召開

2015-06-24 15:35:54

2010-08-31 11:31:21

2018-01-15 14:42:51

大數據互聯網微信

2012-12-31 12:45:15

2012移動互聯網

2015-12-14 17:50:09

ENI經濟和信息化網

2015-05-28 16:11:07

互聯網+

2014-01-15 14:35:35

云計算

2015-10-08 15:20:34

互聯網物聯網

2009-12-07 09:32:40

2021-07-12 08:53:21

互聯網 行業數據

2017-03-15 09:00:22

互聯網易貨郎零售

2017-07-07 16:07:41

2016-07-18 18:47:07

互聯網+

2015-09-22 09:17:33

互聯網發展史

2015-10-30 17:50:18

互聯網金融

2018-08-15 09:02:59

產業互聯網工業互聯網物聯網

2013-01-15 09:08:29

2013移動互聯網預言

2018-10-14 14:36:31

工業互聯網信息化智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区三区在线看 | 色综合一区 | 在线观看国产三级 | 午夜国产 | 久久一区二区三区电影 | 97国产在线视频 | 成人精品国产一区二区4080 | 日韩精品1区2区 | 日本超碰 | 免费黄色录像片 | 国产一区二区三区四区在线观看 | 色视频免费 | 国产小视频在线看 | 国产精品视频网 | 久久色视频 | 日本高清aⅴ毛片免费 | 久久综合久 | 国产精品免费在线 | 最新高清无码专区 | 久久久精 | 成年人免费看的视频 | 成人三级视频在线观看 | 欧美日韩在线观看一区 | 久久久久久久久久久高潮一区二区 | 人人擦人人 | 日本精品裸体写真集在线观看 | 欧美日韩在线视频一区二区 | 久久久久成人精品 | 国产一区二区三区 | 国产精品久久久久久久久久久免费看 | 欧洲av在线| 亚洲视频一区在线观看 | 久久久久国产精品一区二区 | 精品国产免费人成在线观看 | 国产精品成人一区二区 | 国产成人精品亚洲日本在线观看 | 亚洲高清在线 | 亚洲成人一区 | 在线看成人av | 欧美日韩久| 毛片免费在线观看 |