<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 11\. 開發您的第一個Spring Boot應用程序 讓我們在Java中開發一個簡單的“Hello World!”Web應用程序,突顯Spring Boot一些主要的功能。 我們將使用Maven構建該項目,因為大多數IDE支持它。 > [https://spring.io/](https://spring.io/)?包含許多使用Spring Boot的“入門指南”。 如果您正在尋求解決一些具體問題; 可以先看一下那里。 > 您可以在?[https://start.spring.io/](https://start.spring.io/)?的依賴關系搜索器中選擇Web啟動器來快速完成以下步驟。 這會自動生成一個新的項目結構,方便您[立即開始編碼](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#getting-started-first-application-code)。 查看文檔了解[更多詳細信息](https://github.com/spring-io/initializr)。 在開始之前,打開終端來檢查您是否安裝了有效的Java和Maven版本。 ``` $ java -version java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode) $ mvn -v Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T13:58:10-07:00) Maven home: /Users/user/tools/apache-maven-3.1.1 Java version: 1.7.0_51, vendor: Oracle Corporation ``` > 這個示例需要在其自己的文件夾中創建。 后面我們假設您在當前目錄已經創建了一個正確的文件夾。 ### 11.1 創建POM 我們需要先創建一個Maven pom.xml文件。 pom.xml是用于構建項目的配置文件。打開編輯器并添加以下內容: ``` <?xml version="1.0" encoding="UTF-8"?> <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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>myproject</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent> <!-- Additional lines to be added here... --> </project> ``` 這應該給你一個工作構建(working build),你可以通過運行 mvn package 進行測試(你可以暫時忽略警告:“jar will be empty - no content was marked for inclusion!”)。 > 現在,您可以將項目導入到IDE中(最新的Java IDE內置對Maven的支持)。 為了簡單起見,這個示例我們繼續使用純文本編輯器。 ### 11.2 添加類路徑依賴關系 Spring Boot提供了一些“啟動器(Starters)”,可以方便地將jar添加到類路徑中。我們的示例應用程序已經在POM的父部分使用了spring-boot-starter-parent。spring-boot-starter-parent是一個特殊啟動器,提供一些Maven的默認值。它還提供依賴管理?[dependency-management](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#using-boot-dependency-management)?標簽,以便您可以省略子模塊依賴關系的版本標簽。 其他“啟動器(Starters)”只是提供您在開發特定類型的應用程序時可能需要的依賴關系。 由于我們正在開發Web應用程序,所以我們將添加一個spring-boot-starter-web依賴關系,但在此之前,我們來看看我們目前的依賴。 ``` $ mvn dependency:tree [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT ``` mvn dependency:tree:打印項目依賴關系的樹形表示。 您可以看到spring-boot-starter-parent本身不在依賴關系中。 編輯pom.xml并在 parent 下添加spring-boot-starter-web依賴關系: ``` <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` 如果您再次運行 mvn dependency:tree ,您將看到現在有許多附加依賴關系,包括Tomcat Web服務器和Spring Boot本身。 ### 11.3 編寫代碼 要完成我們的應用程序,我們需要創建一個的Java文件。 默認情況下,Maven將從src/main/java編譯源代碼,因此您需要創建該文件夾結構,然后添加一個名為src/main/java/Example.java的文件: ``` import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.stereotype.*; import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } } ``` 雖然這里沒有太多的代碼,但是有一些重要的部分。 #### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#1131-restcontroller和requestmapping-注解)11.3.1 @RestController和@RequestMapping 注解 我們的Example類的第一個注解是@RestController。 這被稱為 stereotype annotation。它為人們閱讀代碼提供了一些提示,對于Spring來說,這個類具有特定的作用。在這里,我們的類是一個web @Controller,所以Spring在處理傳入的Web請求時會考慮這個類。 @RequestMapping注解提供“路由”信息。 告訴Spring,任何具有路徑“/”的HTTP請求都應映射到home方法。 @RestController注解告訴Spring將生成的字符串直接返回給調用者。 > @RestController和@RequestMapping注解是Spring MVC 的注解(它們不是Spring Boot特有的)。 有關更多詳細信息,請參閱Spring參考文檔中的[MVC部分](http://docs.spring.io/spring/docs/4.3.7.RELEASE/spring-framework-reference/htmlsingle#mvc)。 #### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#1132-enableautoconfiguration注解)11.3.2 @EnableAutoConfiguration注解 第二個類級別的注釋是@EnableAutoConfiguration。 這個注解告訴 Spring Boot 根據您添加的jar依賴關系來“猜(guess)”你將如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,自動配置將假定您正在開發Web應用程序并相應地配置Spring。 啟動器和自動配置 自動配置旨在與“起動器”配合使用,但兩個概念并不直接相關。 您可以自由選擇啟動器之外的jar依賴項,Spring Boot仍然會自動配置您的應用程序。 #### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#1133-main方法)11.3.3 “main”方法 我們的應用程序的最后一部分是main()方法。 這只是一個遵循Java慣例的應用程序入口點的標準方法。 我們的main()方法通過調用run()委托(delegates)給Spring Boot的SpringApplication類。 SpringApplication將引導我們的應用程序,啟動Spring,然后啟動自動配置的Tomcat Web服務器。 我們需要將Example.class作為一個參數傳遞給run方法來告訴SpringApplication,它是主要的Spring組件。 還傳遞了args數組以傳遞命令行參數。 ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#114-運行示例)11.4 運行示例 由于我們使用了spring-boot-starter-parent POM,所以我們有一個可用的運行目標,我們可以使用它來啟動應用程序。 鍵入mvn spring-boot:從根目錄運行以啟動應用程序: ``` $ mvn spring-boot:run . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.2.RELEASE) ....... . . . ....... . . . (log output here) ....... . . . ........ Started Example in 2.222 seconds (JVM running for 6.514) ``` 如果你用瀏覽器打開?[http://localhost:8080](http://localhost:8080/)?你應該看到以下輸出: ``` Hello World! ``` ctrl-c 正常(gracefully)退出應用程序。 ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#115-創建可執行的jar)11.5 創建可執行的jar 讓我們完成我們的例子,創建一個完全自包含的可執行jar文件,我們可以在生產環境中運行。 可執行的jar(有時稱為“fat jars”)是包含編譯的類以及代碼運行所需要的所有jar包依賴的歸檔(archives)。 可執行jar和Java Java不提供任何標準的方法來加載嵌套的jar文件(即本身包含在jar中的jar文件)。 如果您正在尋找可以發布自包含的應用程序,這可能是有問題的。 為了解決這個問題,許多開發人員使用“uber” jars。 一個uber jar簡單地將所有類、jar包進行檔案。 這種方法的問題是,很難看到您在應用程序中實際使用哪些庫。 如果在多個jar中使用相同的文件名(但具有不同的內容),也可能會出現問題。 Spring Boot采用[一個不同的方法](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#executable-jar)這樣可以直接對jar進行嵌套。 要創建可執行的jar,我們需要將spring-boot-maven-plugin添加到我們的pom.xml中。 在 dependencies標簽 下方插入以下行: ``` <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` > spring-boot-starter-parent POM 包括重新打包目標的 executions標簽 配置。 如果您不使用該父POM,您將需要自己聲明此配置。 有關詳細信息,請參[閱插件文檔](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/maven-plugin/usage.html)。 保存您的pom.xml并從命令行運行 mvn package: ``` $ mvn package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] .... .. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject --- [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:1.5.2.RELEASE:repackage (default) @ myproject --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ``` 如果你看看target目錄,你應該看到myproject-0.0.1-SNAPSHOT.jar。 該文件的大小約為10 MB。 如果你想查看里面,可以使用jar tvf: ``` $ jar tvf target/myproject-0.0.1-SNAPSHOT.jar ``` 您還應該在target目錄中看到一個名為myproject-0.0.1-SNAPSHOT.jar.original的較小文件。 這是Maven在Spring Boot重新打包之前創建的原始jar文件。 使用java -jar命令運行該應用程序: ``` $ java -jar target/myproject-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.2.RELEASE) ....... . . . ....... . . . (log output here) ....... . . . ........ Started Example in 2.536 seconds (JVM running for 2.864) ``` 像之前一樣,ctrl+c正常退出應用程序。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看