1. 程式人生 > >Spring+Spring MVC+Mybatis+Maven搭建多模組專案

Spring+Spring MVC+Mybatis+Maven搭建多模組專案

maven多模組專案SpringMVC簡單例項:劃分多模組,也就是方便多人開發,自己開發自己的那塊沒有多大沖突。

專案結構

整個專案目錄是這樣的:

GitHub地址 :https://github.com/thecattle/maven_model

—- app-parent |– pom.xml (pom) | |– app-dao | |– pom.xml (jar) | |– app-service | |– pom.xml (jar) | |– app-web |– pom.xml (war)

注意他們的packaging型別,有jar,war和pom三種

dao–作為jar匯入–>service–作為jar匯入–>web–build成war專案–>執行

專案搭建

父模組僅僅是幫助聚合其他模組構建的工具,它本身並無實際的內容。 父模組與其他模組的目錄結構並非一定是父子關係,還可以是平行關係。更改下modules路徑即可。

首先new一個maven專案作為parent專案。 pom檔案如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

<!--?xml version="1.0" encoding="UTF-8"?-->

<modelversion>4.0.0</modelversion>

<groupid>com.sun</groupid>

maven_test</artifactid>

<version>1.0-SNAPSHOT</version>

<!--首先在parent中宣告打包型別為 pom -->

<packaging>pom</packaging>

<!-- 宣告包含的所有子模組 -->

<modules>

<module>maven_service</module>

<module>maven_web</module>

<module>maven_dao</module>

</modules>

<!--不宣告會提示警告: Warning:java: 源值1.5已過時, 將在未來所有發行版中刪除 -->

<properties>

<maven.compiler.source>1.8</maven.compiler.source>

<maven.compiler.target>1.8</maven.compiler.target>

</properties>

<dependencies>

<!-- Test -->

<dependency>

<groupid>junit</groupid>

junit</artifactid>

<version>4.12</version>

<scope>test</scope>

</dependency>

<!-- Spring MVC support -->

<dependency>

<groupid>org.springframework</groupid>

spring-webmvc</artifactid>

<version>4.1.4.RELEASE</version>

</dependency>

<dependency>

<groupid>org.springframework</groupid>

spring-web</artifactid>

<version>4.1.4.RELEASE</version>

</dependency>

</dependencies>

</project>

再new一個maven專案作為dao模組。pom檔案如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<!--?xml version="1.0" encoding="UTF-8"?-->

<!--要宣告父專案-->

<parent>

maven_test</artifactid>

<groupid>com.sun</groupid>

<version>1.0-SNAPSHOT</version>

</parent>

<!--打包型別為 jar -->

<packaging>jar</packaging>

<modelversion>4.0.0</modelversion>

maven_dao</artifactid>

</project>

再new一個maven專案作為service模組,pom如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<!--?xml version="1.0" encoding="UTF-8"?-->

<!--要宣告父專案-->

<parent>

maven_test</artifactid>

<groupid>com.sun</groupid>

<version>1.0-SNAPSHOT</version>

</parent>

<modelversion>4.0.0</modelversion>

<!--打包型別為 jar -->

<packaging>jar</packaging>

maven_service</artifactid>

<dependencies>

<!--將dao模組作為jar包引進來 -->

<dependency>

<groupid>com.sun</groupid>

maven_dao</artifactid>

<!--版本號為父專案版本號 -->

<version>${project.version}</version>

</dependency>

</dependencies>

</project>

再new一個maven專案作為web模組,pom如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<!--?xml version="1.0" encoding="UTF-8"?-->

<!--宣告父專案-->

<parent>

maven_test</artifactid>

<groupid>com.sun</groupid>

<version>1.0-SNAPSHOT</version>

</parent>

<modelversion>4.0.0</modelversion>

<!--打包型別為 war -->

<packaging>war</packaging>

maven_web</artifactid>

<dependencies>

<!-- 引入 service模組 jar -->

<dependency>

<groupid>com.sun</groupid>

maven_service</artifactid>

<version>${project.version}</version>

</dependency>

</dependencies>

</project>

現在這三個模組就已經關聯起來了

配置SpringMVC

在web模組中,web.xml檔案如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<!--?xml version="1.0" encoding="UTF-8"?-->

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

<welcome-file>index.html</welcome-file>

</welcome-file-list>

<!--spring mvc 配置 -->

<servlet>

<servlet-name>spring-mvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring-mvc.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup> <!-- 是啟動順序,讓這個Servlet隨Servletp容器一起啟動。 -->

</servlet>

<servlet-mapping>

<servlet-name>spring-mvc</servlet-name>

<url-pattern>/</url-pattern> <!-- 會攔截/的請求。 -->

</servlet-mapping>

</web-app>

spring-mvc.xml:

<!--?xml version="1.0" encoding="UTF-8"?-->

<!--掃描com.sun下的所有包-->

<context:component-scan base-package="com.sun.**">

</context:component-scan></beans>