maven安装教程安装教程_Maven教程之春
maven安裝教程安裝教程
1.簡介
在這篇文章中,我們將演示如何針對非常特定的用例對Spring使用Maven依賴項。 我們使用的所有庫的最新版本都可以在Maven Central上找到。
對于一個有效的構建周期來說,了解Maven依賴項的工作方式以及如何對其進行管理很重要,并且對于在我們的項目中使用的各種庫之間的版本之間應有清晰的定義,這很重要。 這是由于我們經常在多個項目中重復一組依賴項的原因。 當我們不明白為什么要使用特定的庫版本時,我們應該犯錯誤。 讓我們了解不同的Spring Framework依賴關系之間的關系。
2.項目設置
我們將使用許多Maven原型之一為我們的示例創建一個示例項目。 要創建項目,請在將用作工作空間的目錄中執行以下命令:
創建樣本項目
mvn archetype:generate -DgroupId=com.javacodegeeks.example -DartifactId=JCG-SpringMaven-Example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false如果您是第一次運行maven,則完成生成命令將需要幾秒鐘,因為maven必須下載所有必需的插件和工件才能完成生成任務。
Spring Maven項目設置
注意,現在,您將在所選目錄中擁有一個與artifactId同名的新目錄。 現在,隨時在您喜歡的IDE中打開項目。 同樣, 僅當我們添加適當的Spring依賴項時,才需要該項目來演示制作的各種依賴項樹 。
最后,我們使用一個簡單的maven命令來代替使用IDE來創建該項目。 這有助于我們使項目設置和初始化不受您可能使用的任何特定IDE的影響。
3. Maven的Spring依賴
由于Spring Framework的高度模塊化性質,添加一個依賴關系不會對另一個依賴關系產生要求。 例如,Spring Context依賴不需要任何Spring MVC依賴或Spring數據庫。 因此,我們將在各自獨立的部分中介紹每個依賴項。
要添加Spring Context支持,這里是需要的依賴項:
Spring語境
<properties><org.springframework.version>5.0.4.RELEASE</org.springframework.version> </properties> <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${org.springframework.version}</version><scope>runtime</scope> </dependency>請注意,我們已經使用了發布此文章時發布的最新可用Spring版本。 同樣,可以在Maven Central上找到我們使用的所有庫的最新版本。
要了解添加特定依賴項時添加到項目中的所有依賴項,我們可以運行一個簡單的Maven命令,該命令使我們能夠查看項目的完整依賴項樹。 這是我們可以用來實現的Maven命令:
檢查依賴樹
mvn dependency:tree當我們運行此命令時,它將向我們顯示以下依賴關系樹:
Spring上下文依賴樹
spring-context庫將實際的Spring Injection Container引入了項目,并需要更多的JAR,例如spring-aop , spring-beans , spring-core , spring-expression和spring-jcl 。 當我們運行上面的命令時,在向我們展示依賴樹之前,maven首先再次下載了JAR,以確認是否發生了更改。
請注意,如果其中一個依賴項需要另一個依賴項才能運行,它也會被下載,并在上面的依賴項樹中顯示為該樹的子分支。 當某個依賴項將另一個依賴項帶入構建系統的依賴項池中時,間接依賴項的子分支表示方法將被清除。
最后,我們在此處添加的spring-context依賴項是runtime范圍 。 這是因為僅在運行時才需要此JAR,以僅提供與Spring相關的類,并且不直接在項目中使用,至少不用于簡單項目。
4. Spring Persistence Maven依賴關系
現在,讓我們看一下Spring Persistence實現所需的核心依賴項:
Spring持久性
<dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${org.springframework.version}</version> </dependency>當我們查看該庫的依賴關系樹時,我們將發現JDBC和Transaction支持也包含在此依賴關系中:
Spring持久性依賴樹
5. Spring MVC Maven依賴關系
Spring MVC Maven依賴關系是您開始使用Spring處理Web項目時將使用的主要依賴關系。 這是在項目中設置Spring MVC的maven依賴項:
SpringMVC
<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${org.springframework.version}</version> </dependency>這是Spring Framework Maven依賴項家族中最常用的依賴項之一。 現在讓我們看一下spring-web和spring-webmvc庫的依賴關系樹:
Spring MVC依賴樹
spring-web庫包含Servlet Environment的最常用的Web實用程序。 第二個庫spring-webmvc為Servlet環境提供了MVC支持 。
6.通過Maven提供測試支持
測試始終是項目不可或缺的一部分。 在Spring中,我們對庫也有依賴性,我們也可以測試我們的應用程序。 其依賴項定義為:
彈簧測試
<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${org.springframework.version}</version> </dependency>讓我們看一下所有庫及其依賴樹所包含的內容:
Spring測試依賴樹
即使這是我們現在需要的所有測試依賴項,我們也會在這里查看Spring Framework中使用的兩個最常用的測試庫,即JUnit和Mockito 。
7. Spring Security Maven依賴關系
與Spring Security支持相關的Maven依賴關系將在Spring Security with Maven課程中詳細討論。
8.在Maven中使用JUnit
要在基于Spring的項目中添加JUnit依賴項,只需添加一個具有test范圍的簡單依賴項:
JUnit的
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope> </dependency>讓我們看一下所有庫及其依賴樹所包含的內容:
JUnit依賴樹
JUnit也帶來了Hamcrest庫。 要在JUnit中使用Hamcrest匹配器,我們使用assertThat語句后跟一個或多個匹配器。 要了解Hamcrest中可用的匹配器,請閱讀Hamcrest匹配器教程 。
9.在Maven中使用Mockito
Mockito是使用最廣泛的Java測試依賴項之一,它還可用于模擬對象及其行為:
莫基托
<dependency><groupId>org.mockito</groupId><artifactId>mockito-all</artifactId><version>1.10.19</version><scope>test</scope> </dependency>讓我們看一下所有庫及其依賴樹所包含的內容:
Mockito依賴樹
10.項目:Hello World
正如對Spring MVC的簡單演示一樣,我們將展示如何使用Spring MVC 5制作一個簡單的控制器。為此,我們使用了在Spring MVC部分中提到的依賴項以及一些Servlet容器依賴項。 這是我們在項目中使用的所有依賴項的列表:
pom.xml
<dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${org.springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${org.springframework.version}</version> </dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope> </dependency> <dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope> </dependency> <dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version> </dependency>要在項目中配置前端Controller,我們將對AbstractAnnotationConfigDispatcherServletInitializer類進行子類化:
AppConfig.java
package com.javacodegeeks.example.config;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class AppConfig extends AbstractAnnotationConfigDispatcherServletInitializer {protected Class<?>[] getRootConfigClasses() {return new Class[] { RootConfig.class };}protected Class<?>[] getServletConfigClasses() {return new Class[] { WebMvcConfig.class };}protected String[] getServletMappings() {return new String[] { "/" };} }現在,我們需要創建一個Root配置類,該類將是空的,因為我們目前尚未在項目中配置任何bean:
RootConfig.java
package com.javacodegeeks.example.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;@Configuration @ComponentScan(basePackages = { "com.javacodegeeks.example.*" }) public class RootConfig { }為了使該項目成為MVC項目,我們需要制作一個WebMvcConfigurer類,該類也使用@EnableWebMvc注釋對其進行標記。 這啟用了項目的MVC性質:
WebMvcConfig.java
package com.javacodegeeks.example.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration @EnableWebMvc @ComponentScan(basePackages = { "com.javacodegeeks.example.*" }) public class WebMvcConfig implements WebMvcConfigurer { }準備好項目的配置后,我們現在可以添加Controller作為最后一步。 為了演示,我們將制作一個簡單的GET API,該API僅將String返回為“ Hello World”:
HomeController.java
package com.javacodegeeks.example.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody;@Controller public class HomeController {@GetMapping("/hello")@ResponseBodypublic String helloWorld() {return "Hello World";} }當我們運行該項目時,我們將在瀏覽器中看到一條簡單的消息。 打開我們配置的URL,它是:
網址
localhost:8080/hello我們將看到以下輸出:
SpringMVC Hello World
有關為何需要配置類的詳細說明,請閱讀Spring MVC Tutorial 。
11.結論
在這篇文章中,我們討論了與Spring框架相關的各種Maven依賴關系,這使每個依賴關系的模塊化以及它們之間如何相互獨立的事情變得更加清晰。 本課是了解所需依賴項的絕佳起點。 我們還研究了Spring Framework依賴關系的幾個部分,以及JUNit和Mockito的依賴關系,即使它們不是Spring Framework本身的一部分,但經常與基于Spring的項目一起使用以為Spring Framework的各個層提供廣泛的測試支持。
最后,我們學習了如何使用簡單的maven命令顯示項目的依賴關系樹,并觀察項目的哪些依賴關系還取決于其他哪些依賴關系。
在此處閱讀有關Spring Framework的更多課程。
12.下載源代碼
本課說明了如何使用Spring框架的Maven依賴關系,以及如何通過將依賴關系保持獨立和模塊化來呈現特定的用例。
下載您可以在此處下載此示例的完整源代碼: JCG-SpringMaven-Example
翻譯自: https://www.javacodegeeks.com/2018/04/spring-with-maven-tutorial.html
maven安裝教程安裝教程
總結
以上是生活随笔為你收集整理的maven安装教程安装教程_Maven教程之春的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 樱花和桃花之间的区别 樱花和桃花的区别是
- 下一篇: 空调吸气和排气_吸气剂和二传手被认为有害