Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。 它是為瞭解決企業應用開發的複雜性而創建的。框架的 ...
Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。
它是為瞭解決企業應用開發的複雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許使用者選擇使用哪一個組件,同時為 J2EE 應用程式開發提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。
然而,Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。Spring的核心是控制反轉(IoC)和麵向切麵(AOP)。簡單來說,Spring是一個分層的JavaSE/EEfull-stack(一站式) 輕量級開源框架。
Spring Boot 是 Spring 框架的一個新的子項目,用於創建 Spring 4.0 項目。它的開發始於 2013 年。2014 年 4 月發佈 1.0.0 版本。它可以自動配置 Spring 的各種組件,並不依賴代碼生成和 XML 配置文件。Spring Boot 也提供了對於常見場景的推薦組件配置。Spring Boot 可以大大提升使用 Spring 框架時的開發效率。下麵本文將對 Spring Boot 進行詳細的介紹。
Spring Boot 包含的特性如下:
1、創建可以獨立運行的 Spring 應用。
2、直接嵌入 Tomcat 或 Jetty 伺服器,不需要部署 WAR 文件。
3、提供推薦的基礎 POM 文件來簡化 Apache Maven 配置。
4、儘可能的根據項目依賴來自動配置 Spring 框架。
5、提供可以直接在生產環境中使用的功能,如性能指標、應用信息和應用健康檢查。
6、沒有代碼生成,也沒有 XML 配置文件。
新建Maven功能,將下麵代碼直接複製到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>SpringBootSimple</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<spring.boot.version>1.1.4.RELEASE</spring.boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
從上面pom.xml文件中可以看到應用所聲明的依賴很少,只有一個“org.springframework.boot:spring-boot-starter-web”,而不是像其他 Spring 項目一樣需要聲明很多的依賴。
當使用 Maven 命令“mvn dependency:tree”來查看項目實際的依賴時,會發現其中包含了 Spring MVC 框架、SLF4J、Jackson、Hibernate Validator 和 Tomcat 等依賴。這實際上 Spring 推薦的 Web 應用中使用的開源庫的組合。
調用Spring Boot應用Java代碼,具體如下:
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 Application {
@RequestMapping("/")
String index() {
return "www.yoodb.com";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
Application.java類是一個簡單的可以獨立運行的 Web 應用。直接運行該 Java 類會啟動一個內嵌的 Tomcat 伺服器運行在 8080 埠。訪問“http://localhost:8080”可以看到頁面上顯示“www.yoodb.com”.只需要簡單的2個文件就可以啟動一個獨立運行的 Web 應用。並不需要額外安裝 Tomcat類似的應用伺服器,也不需要打包成WAR文件。可以通過“mvn spring-boot:run”在命令行啟動該應用。
在pom.xml文件中添加了“org.springframework.boot:spring-boot-maven-plugin”插件。在添加了該插件之後,當運行“mvn package”進行打包時,會打包成一個可以直接運行的 JAR 文件,使用“java -jar”命令就可以直接運行。很大程度上簡化了應用的部署,只需要安裝了 JRE 就可以運行。
“@EnableAutoConfiguration”註解的作用在於讓 Spring Boot 根據應用所聲明的依賴來對Spring框架進行自動配置,減少了開發人員的工作量。註解“@RestController”和”@RequestMapping”由Spring MVC 提供,用來創建REST服務。這兩個註解和 Spring Boot 本身並沒有關係的。