Spring boot是Spring推出的一個輕量化web框架,主要解決了Spring對於小型項目飽受詬病的配置和開發速度問題。 Spring Boot 包含的特性如下: 創建可以獨立運行的 Spring 應用。 直接嵌入 Tomcat 或 Jetty 伺服器,不需要部署 WAR 文件。 提供推薦的 ...
Spring boot是Spring推出的一個輕量化web框架,主要解決了Spring對於小型項目飽受詬病的配置和開發速度問題。
Spring Boot 包含的特性如下:
創建可以獨立運行的 Spring 應用。
直接嵌入 Tomcat 或 Jetty 伺服器,不需要部署 WAR 文件。
提供推薦的基礎 POM 文件來簡化 Apache Maven 配置。
儘可能的根據項目依賴來自動配置 Spring 框架。
提供可以直接在生產環境中使用的功能,如性能指標、應用信息和應用健康檢查。
沒有代碼生成,也沒有 XML 配置文件。
****第一個SpringBoot應用:****
1.構建maven項目
IDEA:
Create New Project -> Maven -> 選擇JDK ->
GroupId : com.example, ArtifactId: springBootDemo -> Project name : springBootDemo
2.編製pom.xml
<?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>com.example</groupId>
<artifactId>springBootDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.編製Application.java存於myFirstProject\src\main\java\com\example下
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4.編製Example.java存於myFirstProject\src\main\java\com\example\web下
package com.example.web;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.PathVariable;
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!";
}
@RequestMapping("/hello/{myName}")
String index(@PathVariable String myName) {
return "Hello " + myName;
}
}
5.運行
在Application.java文件上(或文件中) 選擇Run 'Application '
如下圖:
6.訪問
運行成功後,打開瀏覽器,輸入http://localhost:8080
頁面展示Hello World!
註解詳解:
Spring boot 中常用的註解如下:
@ResponseBody
用該註解修飾的函數,會將結果直接填充到HTTP的響應體中,一般用於構建RESTful的api;
@Controller
用於定義控制器類,在spring 項目中由控制器負責將用戶發來的URL請求轉發到對應的服務介面(service層)。
@RestController
@ResponseBody和@Controller的合集
@RequestMapping
提供路由信息,負責URL到Controller中的具體函數的映射。
@EnableAutoConfiguration
Spring Boot自動配置(auto-configuration):嘗試根據你添加的jar依賴自動配置你的Spring應用。例如,如果你的classpath下存在HSQLDB,並且你沒有手動配置任何資料庫連接beans,那麼我們將自動配置一個記憶體型(in-memory)資料庫”。你可以將@EnableAutoConfiguration或者@SpringBootApplication註解添加到一個@Configuration類上來選擇自動配置。如果發現應用了你不想要的特定自動配置類,你可以使用@EnableAutoConfiguration註解的排除屬性來禁用它們.
@ComponentScan
表示將該類自動發現(掃描)並註冊為Bean,可以自動收集所有的Spring組件,包括@Configuration類。我們經常使用@ComponentScan註解搜索beans,並結合@Autowired註解導入。
@Configuration
相當於傳統的xml配置文件,如果有些第三方庫需要用到xml文件,建議仍然通過@Configuration類作為項目的配置主類——可以使用@ImportResource註解載入xml配置文件。
@SpringBootApplication
相當於@EnableAutoConfiguration、@ComponentScan和@Configuration的合集。
@Import
用來導入其他配置類。
@ImportResource
用來載入xml配置文件。
@Autowired
自動導入依賴的bean
@Service
一般用於修飾service層的組件
@Repository
使用@Repository註解可以確保DAO或者repositories提供異常轉譯,這個註解修飾的DAO或者repositories類會被ComponetScan發現並配置,同時也不需要為它們提供XML配置項。