SpringBoot入門

SpringBoot簡化了Spring應用程序開發

Spring 歷史:

Spring 誕生時是Java企業版(Java Enterprise Edition,JEE,也稱J2EE)的輕量級替代品。無需開發重量級的Enterprise JavaBean(EJB),Spring爲企業級Java開發提供了簡單方法,通過依賴注入和麪向切面編程,用簡單的Java對象(Plain Old Java Object,POJO)實現了EJB的功能。
雖然Spring的組建代碼是輕量級的,但是配置卻是重量級的。
Spring2.5引入了基於註解的組建掃描,Spring3.0引入了基於Java的配置。

SpringBoot的核心:

  • 自動配置:針對Spring應用程序的常見應用功能,SpringBoot能夠自動提供相關配置。
  • 起步依賴:告訴SpringBoot需要什麼功能,它就能引入什麼庫。
  • 命令行界面:可選特性,無需傳統的項目構建,只需寫代碼就能完成完整的應用程序。
  • Actuator:能夠深入到運行中的Spring應用程序,窺探應用程序內部情況。

使用Spring Initial初始化Spring Boot項目

幾種用法:

第一個SpringBoot應用程序

使用IntelliJ IDEA創建SpringBoot項目:

file->new project->左側欄選擇Spring Initial

項目結構:
項目結構

項目結構解釋:

  • build.gradle:Gradle構建說明文件。
  • SpringbootFirstappApplication.java:應用程序的啓動引導類,也是主要的Spring配置類。
  • application.properties:用於配置應用程序和Spring boot的屬性。
  • SpringbootFirstappApplicationTest.java:一個基本的集成測試類。

SpringbootFirstappApplication.java(啓動引導類,配置類)
代碼:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootFirstappApplication {

    public static void main(String[] args) {

        SpringApplication.run(SpringbootFirstappApplication.class, args);
    }
}

@SpringBootApplication:開啓了組件掃描和SpringBoot的自動配置功能。

@SpringBootApplication將3個有用的註解結合在一起
Spring的@Configuration:標明該類使用Spring基於Java的配置。
Spring的@ComponentScan:啓用組件掃描,這樣程序中的Web控制器和其他組件才能被自動發現並且註冊爲Spring應用程序上下文中的Bean。
Spring Boot的@EnableAutoConfiguration:開啓SpringBoot的自動配置。

application.properties:Initializr爲你生成的application.properties文件是一個空文件。可以刪除,不會對程序有任何影響。也可以在文件中添加條目,細粒度的調整Spring Boot的自動配置。完全不用告訴Spring Boot爲你加載application.properties,只要它存在就會被加載,Spring和應用程序都能獲取其中的屬性。

運行項目:使用命令行運行項目,右鍵運行Application.java,配置Tomcat Local Server。

使用命令行:
gradle:$gradle bootrun
maven:spring-boot:run

Spring Boot項目構建

構建工具:

  • Maven
  • Gradle

Spring Boot 起步依賴

Spring Boot 通過提供衆多的起步依賴來降低項目依賴的複雜度。

起步依賴本質上是一個Maven項目對象模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,這些東西加載一起即支持某項功能。

通過添加起步依賴,替換向項目構建文件裏添加一堆單獨的庫依賴。

指定基於功能的依賴: 比如:做一個Web應用程序。只需要添加Spring Boot 的Web起步依賴即可。它聲明的依賴也會被傳遞依賴進來。
覆蓋,移除,指定起步依賴引入的傳遞依賴:通過構建工具中的功能,選擇性的覆蓋它們引入的傳遞依賴的版本號,排除傳遞依賴,爲SpringBoot起步依賴沒有涵蓋的庫指定依賴。使用時要小心,避免出現兼容性問題
1.移除傳遞依賴

Gradle:
compile("org.springframework.boot:spring-boot-starter-web"){excluede group:'com.fasterxml.jackson.core'}

Maven:
<dependency><goupId>org.springframework.boot</goupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>com.fasterxml.jackson.core</groupId></exclusion></exclusions></dependency>
2.覆蓋依賴:
指定依賴版本號,起步依賴本身版本是由正在使用的SpringBoot的版本決定的,而起步依賴會決定它們引入的傳遞依賴的版本。

Spring Boot自動配置

Spring Boot自動配置承擔起了配置Spring的重任,因此你能專注於編寫自己的應用程序。

Spring Boot利用條件化註解配置實現自動配置:

例子:

@Conditional(JdbcTemplateCondition.class)
public MyService myService(){
...
}

在這個例子中,只有當JdbcTemplateCondition類的條件成立時纔會創建MyService這個Bean。也就是說MyService Bean創建的條件是ClassPath中有JdbcTemplateCondition,否則這個Bean的聲明就會被忽略掉。

SpringBoot提供的條件化註解:
SpringBoot提供的條件化註解

這篇文章後將會介紹和總結Spring Boot的更多內容!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章