簡單明瞭的帶你理解springboot原理和三大核心註解

一、springboot的定義

Spring Boot是伴隨着Spring4.0共同誕生的,它的目的就是簡化spring的配置及開發,並協助開發人員可以整體管理應用程序的配置而不再像以前那樣需要做大量的配置工作,它提供了很多開發組件,並且內嵌了web應用容器,如tomcat和Jetty等。其目的便是使我們的開發變得簡化並且能大幅度提高開發人員的開發效率,爲了簡化Spring功能的配置我們可以引入或啓動我們需要的Spring功能。這樣做的好處就是避免開發人員過多的對框架的關注,而把更多的精力與時間放在系統的業務邏輯代碼中。

二、SpringBoot的作用

Spring Boot框架,其功能非常簡單,便是幫助我們實現自動配置。我們都知道Spring Boot框架的核心是自動配置。只要有相應的jar包,Spring就會幫助我們實現自動配置,而無需像以前我們使用spring框架一樣要做很多配置。當默認配置不能滿足我們要求的時候,我們能夠用自己的配置來替換這些自動的配置類。此外,上面我們也提到Spring Boot內嵌了web應用容器,除此之外還集成了系統監控等功能,這些都可以幫助我們快速搭建企業級的應用程序並使用。 本文來源於公衆號:【Java學習提升】 專注於Java領域技術分享,Java知識體系學習、分享面試經驗,讓我們結伴而行,共同成長!

三、Spring Boot的核心功能

1.可以不依賴tomcat等外部容器來獨立運行的web項目,springboot的優點是能夠以jar包的形式運行。

2.嵌入式的Servlet容器:我們不需要像以前那邊先打個war包,然後再運行,在springboot看來這些都是多餘的,我們可以選擇他內嵌的tomcat、Jetty或者Undertow等容器來直接運行。

3.使pom文件配置更簡化:我們只需要在 pom 文件中添加starter-web 依賴即可,無需像以前一樣引入很多依賴而造成容易漏掉。

4.能夠生產環境中直接使用性能指標、健康檢查和應用信息等。

5.springboot不需要任何xml文件配置而能實現所有的spring配置。

四、SpringBoot原理

1、我們使用IDEA開發工具創建一個springboot項目,我們看下pom文件依賴了什麼?

spring-boot-starter-web會自動幫我們引入開發過程中所需要的web模塊jar包,如包含了spring-web和spring-webmvc的依賴,好處就是我們不需要逐個的去導入,只需要導入一個就可以,這樣可以避免遺漏或者版本問題,如下所示:

2、SpringBootApplication類

我們面試會經常被問到Springboot的核心註解是什麼,這裏我們來看下@SpringBootApplication,我們點進去可以看到包含了很多註解,其中@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan這三個註解尤爲重要。

@SpringBootConfiguration

當我們點進來他是這樣的

@Configuration這個註解就是用來讀取spring.factories文件

而上面我們所提到的@EnableAutoConfiguration註解@Configuration註解都具有配置的功能,那麼他們兩有什麼區別呢?

@EnableAutoConfiguration註解使用的是自動配置機制,是自動導入,通俗的說就是在代碼中自動import操作。

舉個栗子說明一下吧,如果pom文件中配置了spring-boot-starter-web,那麼他的jar包會放到類路徑classpath裏面,spring會自動配置tomcat和springmvc。這裏如果不是自動配置的話,那麼就需要我們手動配置下面的代碼:

如果我們使用了自動配置以後,這些配置代碼就不需要再額外的去配置了。

@Configuration的作用是如果有自動導入的話那麼肯定就會有自動導出,注意,這需要該類方法中的@bean註解,可以理解爲xml中的bean配置,如下:

如果類Demo1和類Demo2被其他類調用,我們只需要這樣去做,如下:

這就是@Configuration的自動導出作用

@ComponentScan的作用是告訴Spring哪個包下面的類用了這個註解,那麼就會被spring自動掃描並且放入bean容器。

 

原創聲明:本文爲【Java學習提升】原創博文,轉載請註明出處。

本文來源於公衆號:【Java學習提升】 專注於Java領域技術分享,Java知識體系學習、分享面試經驗,讓我們結伴而行,共同成長

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