2016-10-28 55 views

回答

4

最好的網站開始是https://start.spring.io/。在這個選擇你需要的依賴包,並得到你的項目啓動。您也可以根據需要在pom.xml文件中稍後安裝一些依賴項。

0

如何在spring mvc中導入依賴關係?

Spring MVC的或不,來管理你可以使用任何的Java的包裝工具,如搖籃或Maven依賴(還有其他的選擇太像常春藤或ANT從古代世界:))

如何開始

https://start.spring.io/從本網站啓動任何一個spring項目,選擇你想要的依賴關係。當你點擊生成時,它會下載一個包含項目(gradle或maven)和你選擇的所有依賴關係的zip文件。然後,稍後可以通過編輯build.gradle(如果選擇了gradle)或pom.xml(如果選擇了maven)來添加或更改依賴關係。

1

要從頭開始,請轉到使用Gradle編譯。

如果你知道基本知識,並希望代碼模板,請執行以下操作:

下載並解壓縮源代碼庫或使用Git克隆它:git的克隆https://github.com/spring-guides/gs-serving-web-content.git 光盤放入GS-服務 - 網絡內容/初始 跳轉提前創建一個Web控制器。 完成後,您可以根據gs-serving-web-content/complete中的代碼檢查結果。

建立與搖籃

首先,建立一個基本的構建腳本。在使用Spring構建應用程序時,您可以使用任何構建系統,但需要使用Gradle的代碼包含在這裏。

創建目錄結構

在您所選擇的項目目錄,創建下面的子目錄結構;例如,使用的mkdir -p的src/main/JAVA /你好在* nix系統:

└── src 

    └── main 

     └── java 

      └── hello 

創建一個搖籃構建文件

下面是最初的搖籃構建文件。

build.gradle 

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.1.RELEASE") 
    } 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'idea' 
apply plugin: 'spring-boot' 

jar { 
    baseName = 'gs-serving-web-content' 
    version = '0.1.0' 
} 

repositories { 
    mavenCentral() 
} 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

dependencies { 
    compile("org.springframework.boot:spring-boot-starter-thymeleaf") 
    compile("org.springframework.boot:spring-boot-devtools") 
    testCompile("junit:junit") 
} 


The Spring Boot gradle plugin provides many convenient features: 

It collects all the jars on the classpath and builds a single, runnable "über-jar", which makes it more convenient to execute and transport your service. 
    It searches for the public static void main() method to flag as a runnable class. 
    It provides a built-in dependency resolver that sets the version number to match Spring Boot dependencies. You can override any version you wish, but it will default to Boot’s chosen set of versions. 

    **Create a web controller** 

    In Spring’s approach to building web sites, HTTP requests are handled by a controller. You can easily identify these requests by the @Controller annotation. In the following example, the GreetingController handles GET requests for /greeting by returning the name of a View, in this case, "greeting". A View is responsible for rendering the HTML content: 


src/main/java/hello/GreetingController.java 

package hello; 

import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestParam; 

@Controller 
public class GreetingController { 

    @RequestMapping("/greeting") 
    public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) { 
     model.addAttribute("name", name); 
     return "greeting"; 
    } 

} 

這個控制器簡潔明瞭,但還有很多事情要做。讓我們一步一步分解它。

@RequestMapping註釋可確保將/ greeting的HTTP請求映射到greeting()方法。

上述示例沒有指定GET與PUT,POST等等,因爲@RequestMapping默認映射所有的HTTP操作。使用@RequestMapping(method = GET)來縮小這個映射。 @RequestParam將查詢字符串參數名稱的值綁定到greeting()方法的name參數中。此查詢字符串參數不是必需的;如果請求中缺失,則使用「World」的缺省值。 name參數的值被添加到Model對象,最終使其可以被視圖模板訪問。

方法體的實現依賴於視圖技術,在這種情況下是Thymeleaf,執行HTML的服務器端呈現。 Thymeleaf解析下面的greeting.html模板並評估th:text表達式來呈現在控制器中設置的$ {name}參數的值。

src/main/resources/templates/greeting.html 

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <title>Getting Started: Serving Web Content</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body> 
    <p th:text="'Hello, ' + ${name} + '!'" /> 
</body> 
</html> 

開發Web應用程序

開發web應用程序的一個共同特點是編碼的改變,重新啓動應用程序,並刷新瀏覽器查看更改。整個過程可能會耗費很多時間。爲了加速事情的循環,Spring Boot附帶了一個稱爲spring-boot-devtools的方便模塊。

啓用熱交換 切換模板引擎禁用緩存 啓用LiveReload基於發展的,而不是生產 自動刷新瀏覽器 其他合理的默認使應用程序的可執行

雖然可以打包這個服務作爲用於部署到外部應用程序服務器的傳統WAR文件,下面演示的更簡單的方法創建了獨立應用程序。您將所有內容打包到一個單獨的,可執行的JAR文件中,由一個良好的舊Java main()方法驅動。一路上,您使用Spring的支持將Tomcat servlet容器作爲HTTP運行時嵌入,而不是部署到外部實例。

src/main/java/hello/Application.java 

package hello; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class Application { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

} 

@SpringBootApplication是一個方便的註解,增加了以下所有條件:

@Configuration標記一個類來作爲bean定義的應用程序上下文的來源。 @EnableAutoConfiguration通知Spring Boot根據類路徑設置,其他bean和各種屬性設置開始添加bean。 通常情況下,您會爲Spring MVC應用程序添加@EnableWebMvc,但Spring Boot會在類路徑中看到spring-webmvc時自動添加它。這將該應用程序標記爲Web應用程序並激活關鍵行爲,例如設置DispatcherServlet。 @ComponentScan告訴Spring在hello包中查找其他組件,配置和服務,以允許它找到控制器。 main()方法使用Spring Boot的SpringApplication.run()方法啓動應用程序。你有沒有注意到沒有一行XML?沒有web.xml文件。這個Web應用程序是100%純Java,您不必處理配置任何管道或基礎設施。

建立一個可執行的JAR

您可以運行從搖籃或Maven命令行應用程序。或者您可以構建一個包含所有必需的依賴項,類和資源的可執行JAR文件,並運行該文件。這使得在整個開發生命週期內跨越不同環境等,將服務作爲應用程序發佈,版本化和部署變得非常容易。

如果您使用的是Gradle,則可以使用./gradlew bootRun運行該應用程序。或者您可以使用./gradlew構建構建JAR文件。然後你可以運行JAR文件:

java -jar build/libs/gs-serving-web-content-0.1.0.jar 如果你使用Maven,你可以使用./mvnw來運行應用程序spring-啓動:運行。或者,您可以使用./mvnw clean包構建JAR文件。然後你可以運行JAR文件:

java -jar target/gs-serving-web-content-0.1.0.jar 上面的程序將創建一個可運行的JAR。您也可以選擇構建經典的WAR文件。 顯示記錄輸出。該應用程序應該在幾秒鐘內啓動並運行。

測試應用

現在,該網站正在運行,請訪問:http://localhost:8080/greeting,在那裏你看到: 「你好,世界」

使用http://localhost:8080/greeting?name=User提供名稱查詢字符串參數。注意信息是如何從「Hello,World!」變化的到「您好,用戶!」:

「您好,用戶!」 此更改顯示GreetingController中的@RequestParam排列按預期工作。 name參數已被賦予默認值「World」,但始終可以通過查詢字符串顯式覆蓋。

添加主頁

靜態資源,如HTML或JavaScript或CSS,可以很容易地從你的Spring啓動應用程序服務的只是拖放到他們的源代碼正確的地方。默認情況下,Spring Boot以「/ static」(或「/ public」)的類路徑中的資源提供靜態內容。 index.html資源是特殊的,因爲它用作「歡迎頁面」(如果存在),這意味着它將作爲根資源提供,即在我們的示例中爲http://localhost:8080/。所以創建這個文件:

src/main/resources/static/index.html 

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>Getting Started: Serving Web Content</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body> 
    <p>Get your greeting <a href="/greeting">here</a></p> 
</body> 
</html> 
and when you restart the app you will see the HTML at http://localhost:8080/.