之前老是利用start.spring.io建立spring-boot工程來使用 ,只知其然不知其因此然
今天從0搭建一個基於mvnen的spring-boot的helloworld項目
此時的目錄結構以下 : java
. ├── mymvn.iml ├── pom.xml └── src ├── main │ ├── java │ └── resources └── test └── java
首先在pom.xml中加入parent ,繼承spring的主程序和一些依賴web
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>1.5.10.RELEASE</version> </parent>
而後的加入spring-boot-web程序依賴 ,使成爲web項目spring
<dependencies> <!-- Spring-boot框架主程序 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.14.RELEASE</version> </dependency> </dependencies>
加入tomcat的組件的依賴 ,能夠進行自動編譯並運行apache
<dependencies> <!-- Spring-boot 的web主程序 ,包含tomcat等 此依賴能夠不安裝 ,可是Spring-boot啓動後不會開啓tomcat監聽 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.5.10.RELEASE</version> </dependency> </dependencies>
<?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>test</groupId> <artifactId>mymvn</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>1.5.10.RELEASE</version> </parent> <dependencies> <!-- Spring-boot框架主程序 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.14.RELEASE</version> </dependency> <!-- Spring-boot 的web主程序 ,包含tomcat等 此依賴能夠不安裝 ,可是Spring-boot啓動後不會開啓tomcat監聽 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.5.10.RELEASE</version> </dependency> </dependencies> </project>
在/src/main/java建立一個名爲app的包 ,而後在app中建立一個類文件Bootstrap.java ,該文件就是啓動文件
寫入如下內容 :tomcat
package app; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; /** * 自動掃描所與包類 * 若是參數 basePackages = "包名" ,那麼就只掃描這個包內的類 * 不參數則是掃描全部的 **/ @ComponentScan // 聲明該類是工程入口類 @SpringBootApplication public class Bootstrap { // 入口方法 public static void main(String args[]){ SpringApplication.run(Bootstrap.class ,args); } }
在app包中建立一個名爲controllers的包 ,並在包裏建立一個名爲HelloController.java的文件
在文件中寫入 :app
package app.controllers; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 聲明本類爲Restful風格 * 全部的方法的返回值都會被處理成JSON */ @RestController public class HelloController { // 簡單的理解爲路由 @RequestMapping("/") public String index() { return "Hello World"; } }
在入口類中 ,右鍵點擊 Run .... 便可 .eclipse是右鍵 run java Aplication
框架
此時咱們看到tomcat啓動到了8080端口 .至此spring-boot就啓動完成了
eclipse
. ├── mymvn.iml ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── app │ │ │ ├── Bootstrap.java │ │ │ └── controllers │ │ │ └── HelloController.java │ │ └── resources │ └── test │ └── java └── target ├── classes │ └── app │ ├── Bootstrap.class │ └── controllers │ └── HelloController.class └── generated-sources └── annotations 14 directories, 6 files