【SpringBoot】POM依賴和Spring-boot-starter

簡介

SpringBoot其設計目的是爲了簡化spring應用的初始搭建以及開發過程,它充分利用了javaconfig的配置模式以及“約定大於配置”的理念,能夠極大的簡化基於Spring MVC和web應用和REST服務開發。使用SpringBoot可以使編碼變簡單,使配置變簡單。
今天來和同學們一起講一講SpringBoot中的依賴和Spring-boot-starter的相關知識。

關於依賴

springboot父級依賴        

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>       

這塊配置就是Spring Boot父級依賴,有了這個,當前的項目就是Spring Boot項目了,spring-boot-starter-parent是一個特殊的starter,它用來提供相關的Maven默認依賴,使用它之後,常用的包依賴可以省去version標籤,我是你們的爸爸啊,所以我直接給你version信息就可以了(繼承)。

起步依賴 spring-boot-starter-xx

自動封裝好了實現功能的依賴。
 
Spring Boot提供了很多”開箱即用“的依賴模塊,都是以spring-boot-starter-xx作爲命名的。舉個例子,最近我的電腦壞了,打算自己組裝一臺電腦,於是我在網上買好了配件,萬事具備只差組裝了,這時候發現配件零件不匹配,心中頓時一萬隻羊駝在奔騰,完了零件白買了退回去吧。於是我還是老老實實在網上買了一臺蘋果Mac,這下就方便很多了呀,喬布斯已經給我組裝好了,直接用就可以了。這樣看來還是買蘋果本更省事一些呀。起步依賴就像是這個蘋果品牌機,自動給封裝好了你想要的依賴。
 
但是springboot的依賴也有很多,所以springboot通過提供衆多起步依賴降低了項目依賴的複雜度。起步依賴本質上就是一個Maven項目對象模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,這些東西加在一起就可以完成某項大工程。
 
讓我們來學習一下吧。

Spring Boot Maven插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

功能:

  • 把項目打包成一個可執行的超級JAR(uber-JAR),包括把應用程序的所有依賴打入JAR文件內,併爲JAR添加一個描述文件,其中的內容能讓你用java -jar來運行應用程序。
  • 搜索public static void main()方法來標記爲可運行類。

spring-boot-starter-logging以及應用日誌

<build>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-logging</artifactId>
</build>

那也就意味着我們的SpringBoot應用自動使用logback作爲日誌框架,在啓動的時候,由org.springframework.boot.logging.LoggingApplicationListener根據情況初始化並使用。默認情況下,SpringBoot已經給我們提供好了很多默認的日誌配置,我們只需要將spring-boot-starter-logging作爲依賴加入到你的SpringBoot應用就可以了,但是如果我們要對這些默認配置進行定製,可以有兩種方式進行:

  • 遵守logback的約定,在classpath中使用定製化的logback.xml配置文件。
  • 在文件系統中任意一個地方提供自己的logback.xml配置文件,然後通過如下配置來application.properties中指定我們日誌系統配置文件位置:
logging.config=/{your config file location}}/logback.xml

如果我們已經習慣了log4j或log4j2,那我們只需要把spring-boot-starter-logging換成如下的starter就好。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
或
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

用於快速構建web應用的spring-boot-starter-web

我們現在工作中大部分實際應用的還是基於SpinrgMVC開發的web應用,Springboot很貼心的爲我們開發了web項目模塊,讓我們更方便的開發web應用。
 
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

引入依賴之後呢,我們可以得到一個直接執行的web應用,然後我們運行mvn spring-boot:run,就能直接啓動一個基於嵌入式Tomcat容器的web應用了,然後就可以通過controller來供用戶訪問了。

SpringBoot的spring-boot-starter

說了不少了,那我們一塊來看看SpringBoot中spring-boot-starter家族都有哪些把。
 
  • spring-boot-starter-logging :使用 Spring Boot 默認的日誌框架 Logback。
  • spring-boot-starter-log4j :添加 Log4j 的支持。
  • spring-boot-starter-web :支持 Web 應用開發,包含 Tomcat 和 spring-mvc。
  • spring-boot-starter-tomcat :使用 Spring Boot 默認的 Tomcat 作爲應用服務器。
  • spring-boot-starter-jetty :使用 Jetty 而不是默認的 Tomcat 作爲應用服務器。
  • spring-boot-starter-test :包含常用的測試所需的依賴,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
  • spring-boot-starter-aop :包含 spring-aop 和 AspectJ 來支持面向切面編程(AOP)。
  • spring-boot-starter-security :包含 spring-security。
  • spring-boot-starter-jdbc :支持使用 JDBC 訪問數據庫。
  • spring-boot-starter-redis :支持使用 Redis。
  • spring-boot-starter-data-mongodb :包含 spring-data-mongodb 來支持 MongoDB。
  • spring-boot-starter-data-jpa :包含 spring-data-jpa、spring-orm 和 Hibernate 來支持 JPA。
  • spring-boot-starter-amqp :通過 spring-rabbit 支持 AMQP。
  • spring-boot-starter-actuator : 添加適用於生產環境的功能,如性能指標和監測等功能。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章