一、Eclipse中Maven的配置:
1、 打開Eclipse的首選項設置
2、找到Maven的配置項目
3、設置Maven的全局配置文件settings.xml
4、更新配置信息,jar包默認的位置一般是C盤,如圖爲打開setting.xml文件,
<localRepository>D:/maven/Development/M2/repository</localRepository>
往 setting.xml文件添加中央倉庫代碼
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
回到Maven的配置項目找到Installations,加入Maven文件
選擇文件
Finish
配置完成。
二、新建一個Maven工程
1、選擇File-->New-->Other-->Maven-->Maven Project,Next
出現如圖:
next 進入下一步:
gruop id 和 artifact id 和version這三個元素定義了一個項目的基本座標,在Maven的世界,任何的jar,pom或者war都是基於這些基本的座標區分的。
Group Id:定義項目組
Artifact Id:定義了當前項目組中唯一的id(相關的項目名)
Version:顧名思義,指定當前的版本
Finish
創建完成。
2、創建成功的Maven項目:
說明:
src/main/resources:用來存放資源文件(默認會幫你創建這個資源文件夾)
src/main/java:用來存放 java 源碼文件(需要自己手動創建)
src/main/test:用來存放測試代碼(需要自己手動創建,也有人習慣命名爲:src/test)@
target:是用來存放 Maven 編譯好的字節碼的地方
Maven Dependencies:裏面放的是 maven 管理的 jar 文件
3、生成的maven項目和pom.xml,接下來解析一下pom.xml的相關配置
所有 POM 文件都需要 project 元素和三個必需字段:groupId,artifactId,version。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者組織的唯一標誌,並且配置時生成的路徑也是由此生成, 如com.springboot,maven會將該項目打成的jar包放本地路徑: com/springboot -->
<groupId>com.springboot</groupId>
<!-- 項目的唯一ID,一個groupId下面可能多個項目,就是靠artifactId來區分的 -->
<artifactId>test1</artifactId>
<!-- 版本號 -->
<version>0.0.1-SNAPSHOT</version>
<!-- 引入父級依賴 -->
<parent><!--被繼承的父項目的構件標識符 -->
<groupId>org.springframework.boot</groupId><!--被繼承的父項目的版本 -->
<artifactId>spring-boot-starter-parent</artifactId> <!--被繼承的父項目的全球唯一標識符 -->
<version>1.5.6.RELEASE</version>
!-- 父項目的pom.xml文件的相對路徑。相對路徑允許你選擇一個不同的路徑。默認值是../pom.xml。Maven首先在構建當前項目的地 方尋找父項 目的pom,其次在文件系統的這個位置(relativePath位置),然後在本地倉庫,最後在遠程倉庫尋找父項目的pom。 -->
</parent>
<!--應用spring springmvc -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
//spring-boot-starter-web包自動幫我們引入了web模塊開發需要的相關jar包,直接可以
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
SpringBoot集成的web容器有我們常用的tomcat容器或者Jetty容器,具體的由配置決定,當然其默認集成的是tomcat容器,
這也說明了,只要我們打成jar包,理論上該jar在任何一個有JRE的服務器上即可運行.,不需要再在服務器上配置tomcat等web容器,這也體現了SpringBoot的微服務的概念。
詳細解析參考:https://blog.csdn.net/qq_33206732/article/details/79171393
簡單配置好了pom.xml,
4、創建一個HelloTest.java測試類運行看看
package com.Test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@EnableAutoConfiguration //配置註解,開啓自動配置
@Controller//配置Controller註解
///*
// * @Controller用於標記在一個類上,使用它標記的類就是一個SpringMVC Controller 對象。
// * 分發處理器將會掃描使用了該註解的類的方法。通俗來說,被Controller標記的類就是一個控制器,這個類中的方法,就是相應的動作。
// */
public class HelloTest {
@RequestMapping("/hello")//@RequestMapping 配置url映射
@ResponseBody
//@responseBody註解的作用是將controller的方法返回的對象通過適當的轉換器轉換爲指定的格式之後,寫入到response對象的body區,通常用來返回JSON數據或者是XML數據。
public String helloTest(){
return"hello,fujiashi";
}
public static void main(String[] args) {//springboot 運行入口
SpringApplication.run(HelloTest.class, args);
//在main方法中執行SpringApplication.run()這種方式來啓動我們的工程,HelloTest.class 就是main函數所在類名。
}
}
上面涉及的相關注解:
Controller的使用
@Controller 處理http請求,@Controller就是整體頁面刷新提交的處理註解
@RestController Spring4之後新加的註解,原來返回json需要@ResponseBody配合@Controller
@RequestMapping 配置url映射
@EnableAutoConfiguration 註解的作用,就是開啓自動配置.開啓了這個註解就意味這springboot 幫你集成了大批的熱門,火熱的開源技術,不再需要你導入集成配置.
@EnableAutoConfiguration註解加載配置的詳細講解參考:https://blog.csdn.net/qq_36872046/article/details/83662761
@responseBody註解的作用是將controller的方法返回的對象通過適當的轉換器轉換爲指定的格式之後,寫入到response對象的body區,通常用來返回JSON數據或者是XML數據,需要注意的呢,在使用此註解之後不會再走試圖處理器,而是直接將數據寫入到輸入流中,他的效果等同於通過response對象輸出指定格式的數據。
關於 @Controller和@RestController的區別
@RestController,一般是使用在類上的,它表示的意思其實就是結合了@Controller和@ResponseBody兩個註解,@ResponseBody,一般是使用在單獨的方法上的,需要哪個方法返回json數據格式,就在哪個方法上使用,具有針對性。
@RestController註解相當於@ResponseBody + @Controller合在一起的作用。 RestController使用的效果是將方法返回的對象直接在瀏覽器上展示成json格式,而如果單單使用@Controller會報錯,需要ResponseBody配合使用。
1、如果只是使用@RestController註解Controller類,則方法無法返回jsp頁面,配置的視圖解析器InternalResourceViewResolver不起作用,返回的內容就是Return 裏的內容。 例如:本來應該到success.jsp頁面的,則其顯示success.
2、如果需要返回到指定頁面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。
3、如果需要返回JSON,XML或自定義mediaType內容到頁面,則需要在對應的方法上加上@ResponseBody註解。
@RequestMapping是一個用來處理請求地址映射的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作爲父路徑。
比如上面用到的@RequestMapping("/hello"),運行成功後,我們只有在瀏覽器輸入http://localhost:8080/hello,就能顯示helloTest()方法運行的結果
如圖:
簡單的Maven 工程就運行成功。