Spring Boot入門:第一個Spring Boot程序
相信使用過Spring MVC框架的小夥伴,都感受過其繁瑣的配置。過於細分的配置和與Servlet API的強耦合,使得無論開發還是部署都會費時費力,且容易出現問題。在此基礎上,Spring Boot應運而生。
使用Spring Boot可以讓我們快速創建一個基於Spring框架的項目,而這個項目,只需要極少的配置。
Spring Boot核心功能
Spring Boot主要有以下核心功能:
1、獨立運行的Spring項目
Spring Boot可以以jar包的形式獨立運行,使用:java -jar xxx.jar就可成功運行Spring Boot項目。
2、內嵌Servlet容器
Spring Boot內嵌Tomcat容器,無需使用war包的方式部署項目,可以通過執行項目的main函數,讓項目快速運行。
3、提供starter簡化Manen配置
Spring Boot提供了一系列的starter pom用來簡化我們的Maven依賴
4、自動配置Spring
Spring Boot會根據我們項目中的jar包依賴,對項目進行自動配置。當然,這只是Spring考慮到的大多數使用場景,在一些特殊情況,還需要我們進行手動配置。
5、准生產的應用監控
Spring Boot提供了基於http、ssh、telnet對運行時的項目進行監控。
6、絕對沒有代碼生成並且對XML也沒有配置要求
Spring Boot實現了自動配置,降低了項目搭建複雜度,包含一整套快速開發包。
如果這裡沒有搞明白上述核心功能描述的意思,不妨先往下看,等看完整篇文章再回來思索核心功能。
第一個Spring Boot程序
以IntelliJ IDEA為例。CreateNew Project,選擇Spring Initializr,Next。
填寫項目信息。
選擇項目使用到的技術,這裡Spring Boot版本建議選擇最新的穩定版,然後下面找到Web勾選上即可。
最後一步,填寫項目名和路徑,Finish。
第一次創建Spring Boot項目時,系統會下載一些需要的依賴等,耗時較長,下載成功後等以後再新建項目時會很快創建好。
項目結構解析
項目創建成功之後,我們先來看下項目結構。
首先在項目創建完成之後,會自動創建一個類,命名規則是ProjectName+Application,比如我們這個項目的SpringBootDemoApplication,這就是SpringBoot項目的入口類。我們打開類之後會發現,類中有個@SpringBootApplication註解,這是整個Spring Boot的核心註解,作用是開啟Spring Boot的自動配置。類中還有一個main方法,這是標準的Java應用程序的入口方法。
我們新建一個類,類結構如圖所示。注意,在Spring Boot項目中,只有入口類(即SpringBootDemoApplication)所在的包及其子包中的類,才會被自動配置。
新建的類加上@RestController註解,使之成為一個Controller,然後在其內提供地址轉換方法。
@RestController
public classGatewayController {
@RequestMapping(value="/gateway")
publicStringgateway() {
return"HelloWorld";
}
}
啟動項目
啟動成功後就可在瀏覽器中直接訪問。
至此,一個簡單的Spring Boot項目就創建成功,並且能夠成功訪問。
項目分析
下面,我們來仔細分析下項目。
1、入口類SpringBootDemoApplication.java
回到入口類SpringBootDemoApplication,剛才說了,項目創建完成之後,會自動創建一個命名規則是ProjectName+Application的類,類中有個@SpringBootApplication註解和一個main方法,main方法是一個標準的Java應用程序的入口方法,而@SpringBootApplication註解作用是開啟Spring Boot的自動配置。我們進入到@SpringBootApplication註解的源碼,可以看到他是一個組合註解,組合了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan等。
@SpringBootConfiguration註解就是@Configuration註解,表示該類是一個配置類;
@EnableAutoConfiguration註解作用是讓Spring Boot根據jar包依賴為當前項目進行自動配置。比如,如果spring-boot-starter-web已經添加了Tomcat和Spring MVC,這個註解會自動假設正在開發一個Web應用程序並添加相應的Spring設置;
@ComponentScan註解的作用是告訴Spring自動掃描並且裝入bean容器。
剛才我們就提醒過,使用@SpringBootApplication註解進行自動配置,系統會去入口類的同級包以及子級包中去掃描實體類。
@Target()
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes =
),@Filter(
type = FilterType.CUSTOM,
classes =
)}
)
public@interfaceSpringBootApplication {
}
2、配置文件application.properties
Spring Boot使用一個全局的配置文件application.properties或者application.yml,放在src/main/resources目錄下。Spring Boot不僅支持常見的properties類型的配置文件,也支持yaml語言的配置文件。
修改Tomcat默認埠號和默認訪問路徑
Tomcat默認埠號是8080,默認訪問路徑是http://localhost:8080,這裡我們將埠號改為8090,訪問路徑改為http://localhost:8090/springbootdemo。
在application.properties文件中添加如下代碼:
重啟項目,瀏覽器訪問
GitHub:https://github.com/dkbnull/SpringBootDemo
TAG:文彬 |