开发第一个spring boot应用
為什么80%的碼農都做不了架構師?>>> ??
我們來用spring boot開發一個簡單的“hello world”web應用,使用maven構建。開始之前,先檢查你的java與maven的版本,看是否是spring boot1.3支持的版本:
$?java?-version java?version?"1.8.0_45" Java(TM)?SE?Runtime?Environment?(build?1.8.0_45-b14) Java?HotSpot(TM)?64-Bit?Server?VM?(build?25.45-b02,?mixed?mode) $?mvn?-v Apache?Maven?3.2.3?(33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4;?2014-08-12T04:58:10+08:00) Maven?home:?/opt/apache-maven-3.2.3 Java?version:?1.8.0_45,?vendor:?Oracle?Corporation Java?home:?/opt/jdk1.8.0_45/jre Default?locale:?zh_CN,?platform?encoding:?UTF-8 OS?name:?"linux",?version:?"3.13.0-53-generic",?arch:?"amd64",?family:?"unix"使用eclipse創建一個普通的maven工程
packaging為jar,并編寫如下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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>net.scanner</groupId><artifactId>hello_world</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.3.0.BUILD-SNAPSHOT</version></parent><!--?如果你使用的是RELEASE版本,就不需要下面的配置?--><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> </project>添加依賴
示例中,我們在pom.xml的parent部分使用 spring-boot-starter-parent。spring-boot-starter-parent是個重要的,默認的父工程,它提供了dependency-management部分。如果我們這時候執行:
$?mvn?dependency:tree你可以看到spring-boot-starter-parent,它并沒有提供什么依賴jar包。如果我們向pom.xml添加spring-boot-starter-web依賴(在parent這部分之后):
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> </dependencies>你再次運行:
$?mvn?dependency:tree那這時候日志輸出就不一樣了!
原來tomcat是嵌入方式使用的!
寫點源代碼吧!
在src/main/java目錄,我們創建一個java源文件:
package?hello_world;import?org.springframework.boot.SpringApplication; import?org.springframework.boot.autoconfigure.EnableAutoConfiguration; import?org.springframework.web.bind.annotation.RequestMapping; import?org.springframework.web.bind.annotation.RestController;@RestController @EnableAutoConfiguration public?class?Example?{@RequestMapping("/")String?home()?{return?"Hello?World!";}public?static?void?main(String[]?args)?{SpringApplication.run(Example.class,?args);} }@RestController是spring4.0中的注解:RestController表明該類的每個方法返回對象而不是視圖,它實際就是@Controller和@ResponseBody混合使用的簡寫方法。@RequestMapping就不解釋了,springmvc3中就有了!@EnableAutoConfiguration注解是類級別的注解,它的意思就是開啟自動配置,該注解會告知Boot要采用一種特定的方式來對應用進行配置。這種方法會將其他樣板式的配置均假設為框架默認的約定,當然它是基于你添加的依賴包。本例中,我們添加了spring-boot-starter-web依賴,然后嵌入式tomcat與spring MVC都自動依賴進來了,這個@EnableAutoConfiguration注解就會假設你開發的是一個web應用程序并進行自動配置。
最后是一個main方法,它是標準的java應用程序的入口。它調用springApplication.run來引導我們的應用程序,自動配置tomcat服務并啟動spring。它需要Example.class作為run方法的一個參數,告訴SpringAppLication它是一個主要的spring組件。args數組作為參數是通過命令行傳入的。
運行示例
我們既然使用了spring-boot-starter-parent,那我們就有一個有用的run目標(maven中目標)來啟動應用程序。在工程的根目錄執行下面的命令:
$?mvn?spring-boot:run如果你打開瀏覽器輸入:localhost:8080/ 你會看到輸入:Hello World!? 按ctrl + c可以優雅地退出!
創建一個可執行的jar
讓我們創建一個可完全獨立執行的jar文件。創建一個可獨立執行的jar文件,我們需要在項目的pom.xml中添加spring-boot-maven-plugin,如下:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build>指定java版本
pom.xml中添加:
<properties><java.version>1.8</java.version> </properties>完整的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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>net.scanner</groupId><artifactId>hello_world</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.3.0.BUILD-SNAPSHOT</version></parent><!--?指定java版本,只需要在這里聲明下這個參數變量就可以了?--><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><!--?如果你使用的是RELEASE版本,就不需要下面的配置?--><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> </project>注意:spring-boot-starter-parent的pom包含了<executions>配置來綁定repackage目標。如果你不使用父pom中的配置,你需要定義你自己的配置。運行:
$?mvn?package即可打包完成!!
如果你在工程的target目錄下看到 hello_world-0.0.1-SNAPSHOT.jar ,那就是打包成功!如果你想看這個jar包里面的內容,可以執行:
$?jar?tvf?target/hello_world-0.0.1-SNAPSHOT.jar你在target目錄下,還會看到一個hello_world-0.0.1-SNAPSHOT.jar.original文件。它是在spring boot打包之前原有的jar文件。
現在運行應用程序,我們可以使用 java -jar 命令:
$?java?-jar?target/hello_world-0.0.1-SNAPSHOT.jar退出按:CTRL + C。
轉載于:https://my.oschina.net/fhd/blog/415936
總結
以上是生活随笔為你收集整理的开发第一个spring boot应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 孕妇做梦梦到发丧什么意思
- 下一篇: 结对项目