1. 程式人生 > >Springboot實踐之HelloWorld

Springboot實踐之HelloWorld

最近要開始開發一個Springboot+AngularJS+Docker的APP,提前熟悉下Springboot。Springboot字面意思是Spring引導。顧名思義,他還是Spring,只不過是換了種玩法。做過SpringMVC的都會吐槽Spring的配置實在是太繁瑣了,SpringMvc的專案沒有幾個XML是搞不定的,雖說有註解方法來簡化,可還是十分繁瑣。Springboot的出現一方面就是為了簡化這個難題。這是官方文件連線,適合我這樣的新手從頭學,官方文件: http://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/reference/htmlsingle/

廢話少說,概念啥的就不說了。直接開始,我們先要確保本地已經有maven環境,沒有的話官網下載一個,配置一下環境變數(maven_home和PATH)。如何檢視是否已經有maven,cmd控制檯打一下這個命令,mvn -v,出現這個類似的結果說明已經安裝了.


先看一下剛剛執行成功的截圖:


出現這樣的結果說明我們的應用啟動成功了。

好了,我的執行環境時java8+maven3.5.2(jdk最好是1.6以上的,1.7,1.8都可以,1.6的會有問題,需要其他配置,需要指定java version以及tomcat的version);

寫一個Springboot應用基本不用管配置檔案,只需要一個pom.xml就可以搞定(當然關聯資料庫或者其他比較複雜的應用還是會需要.properties;來配置的,這裡只是個demo),下面是程式目錄結構:


我們所關心的只有一個pom.xml,這裡麵包含了所有springboot應用需要的依賴。pom.xml內容如下:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sgx</groupId>
  <artifactId>SpringBoot</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>SpringBoot Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  </dependencies>
  
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.0.BUILD-SNAPSHOT</version>
    </parent>
  
  <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
   
  
  <build>
  <finalName>SpringBoot</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>springloaded</artifactId>
                    <version>1.2.0.RELEASE</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>
</project>

Spring Boot依賴 使用 org.springframework.boot groupId 。通常,讓你的Maven POM檔案繼承 spring-boot-starter-parent,並宣告一個或多個 Starter POMs依賴即可。 我們這裡就是這樣做的。 starter-web支援web應用,loaded支援熱部署,即使修改了java程式碼,只需要儲存一下即可,不需要重啟。會自動載入已經修改的類。 maven-plugin的引入使得應用可以被打成jar包或者war包釋出出去。 頁面傳送請求之後,跟SpringMVC一樣 會去根據Controller找到對應請求的來執行方法。頁面上結果如下:
我們的App.class測試類的程式碼也是非常簡潔,SpringbootApplication標記這個class是整個應用程式的入口,RequestMapping在Hello方法上標記跟SpringMvc效果一樣,前端的請求會掃描到這裡找到這個方法(假如頁面輸入localhost:8080/hello就會執行對應的方法,這裡是列印hello),return的結果是個字串,Springboot預設支援thymeleaf,不提倡JSP,也支援,需要在application.properties指定。 所以我們建立一個Springboot Web應用只需要3步: 1.新建Maven-web Project; 2.寫一個pom.xml; 3.寫入業務邏輯,測試執行。

相比Spring配置的複雜度來說,Springboot真是省了不少事。但是我今天一天才弄出了個Helloworld,每次都在提示pom.xml裡面的spring-boot-starter-parent有問題,

然後jdk重灌,maven重新下載了,還參考了網上別人的做法才搗鼓出來了這個。。