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重新下載了,還參考了網上別人的做法才搗鼓出來了這個。。