欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot之核心依賴和自動配置方式

 更新時間:2023年06月26日 10:39:40   作者:王嘯tr1912  
這篇文章主要介紹了SpringBoot之核心依賴和自動配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

之前介紹了springboot是有多么的好,那么,我們現(xiàn)在通過一個小demo來看他是有多么的強(qiáng)大!

一、核心pom引入

我們可以知道一般的項目引入了的基本包和spring一些連接池,再加上幾個配置文件還有應(yīng)用服務(wù)器(或者web服務(wù)器),就可以直接運行起來了。

那么springboot要如何做呢?

首先就是核心依賴了:

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.5.2.RELEASE</version>
</parent>

這個parent是springboot最最核心的引入,所有的配置都在里面,并且是springboot項目必須引入的。

當(dāng)然現(xiàn)在都是web項目居多,我們還需要引入一個需要的依賴:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

然后可以的話還可以引入一個插件:

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

引入這些東西之后,我們可以在一個包中新建一個類,然后寫入以下代碼:

@Controller
@SpringBootApplication
@Configuration
public class HelloApplication {
    @RequestMapping("hello")
    @ResponseBody
    public String hello(){
        return "hello world!";
    }
    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }
}

之后直接用javaApplication 的run方式,我們就可以直接將springboot的這個項目run起來,可以在控制臺看到:

然后我們在瀏覽器中輸入:http://localhost:8080/hello

就可以看到如下頁面:

這樣,我們就啟動了一個簡單的springboot項目。

二、核心自動配置

我們可以在項目中看到,其實我們就是寫了一個類,為什么連tomcat都不用,就可以直接啟動一個web程序呢?這一切都是從springboot的配置說起。

還記得我們引入pom了一個spring-boot-starter-web了么,這個就是spring所依賴的web項目模板,我們可以在maven管理器的依賴中找到這些已經(jīng)默認(rèn)加載好的東西:

我們可以直觀的看到,tomcat,hibernate,還有一些web項目需要用的東西全部都引入到了項目中,在項目啟動的時候就是調(diào)用的他們,然后我們就相當(dāng)于吧tomcat也啟動了一樣的感覺,為我們的開發(fā)配置省了不少事情。

然后我們再來看我們寫的這個類,為什么可以直接用web來啟動呢,根據(jù)上一篇文章的介紹,java的配置方式起到了很強(qiáng)的作用,那就是我們可以利用注解去輕易的配置一些我們想要配置的東西,springboot就是利用了這一點。

我們可以看到我們的類上面除了java的@Configuration之外,還有一個是springboot的配置項@SpringBootApplication,這個注解的引入,就默認(rèn)為我們自動的配置了一些常用的配置。

那么,它都自動為我們配置了什么呢?我們可以找到library的jar包引入,找到一個springboot的autoconfigure來看一下:

我們展開看一下會發(fā)現(xiàn)很多熟悉的東西:

是不是看到了很多熟悉的身影呢,我們可以在每個包下面都找到一個帶有AutoConfigure的類,這就是用java配置方式寫的默認(rèn)配置:

當(dāng)然,這些都是默認(rèn)的配置,我們?nèi)绻胍约号渲靡粋€組件要怎么把默認(rèn)的配置取消呢?

其實很簡單,因為每個springboot項目都必須有一個核心的帶有@SpringBootApplication注解的類作為入口,所以我們只需要在這個注解上消除這個配置類的引入就可以了,

例如:

@Controller
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, KafkaAutoConfiguration.class})
@Configuration
public class HelloApplication {
    @RequestMapping("hello")
    @ResponseBody
    public String hello(){
        return "hello world!";
    }
    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }
}

通過這樣用exclude的方式就把mongo和kafka的自動配置去掉了,我們就可以自己進(jìn)行配置了。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決SpringMVC Controller 接收頁面?zhèn)鬟f的中文參數(shù)出現(xiàn)亂碼的問題

    解決SpringMVC Controller 接收頁面?zhèn)鬟f的中文參數(shù)出現(xiàn)亂碼的問題

    下面小編就為大家分享一篇解決SpringMVC Controller 接收頁面?zhèn)鬟f的中文參數(shù)出現(xiàn)亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • java中JSONObject轉(zhuǎn)換為HashMap(方法+main方法調(diào)用實例)

    java中JSONObject轉(zhuǎn)換為HashMap(方法+main方法調(diào)用實例)

    這篇文章主要介紹了java中JSONObject轉(zhuǎn)換為HashMap(方法+main方法調(diào)用實例),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java多線程案例之定時器詳解

    Java多線程案例之定時器詳解

    定時器是一種實際開發(fā)中非常常用的組件,?類似于一個?“鬧鐘”,?達(dá)到一個設(shè)定的時間之后,?就執(zhí)行某個指定好的代碼。本文主要來和大家聊聊定時器的原理與使用,需要的可以參考一下
    2023-01-01
  • Mybatis如何實現(xiàn)InsertOrUpdate功能

    Mybatis如何實現(xiàn)InsertOrUpdate功能

    這篇文章主要介紹了Mybatis如何實現(xiàn)InsertOrUpdate功能,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 淺談SpringCloud的微服務(wù)架構(gòu)組件

    淺談SpringCloud的微服務(wù)架構(gòu)組件

    這篇文章主要介紹了淺談SpringCloud的微服務(wù)架構(gòu)組件,Spring Cloud根據(jù)分布式服務(wù)協(xié)調(diào)治理的需求成立了許多子項目,每個項目通過特定的組件去實現(xiàn),需要的朋友可以參考下
    2023-04-04
  • Spring實現(xiàn)加法計算器和用戶登錄功能

    Spring實現(xiàn)加法計算器和用戶登錄功能

    在前后端分離的Web開發(fā)模式中,接口(API)扮演著至關(guān)重要的角色,它是前后端交互的橋梁,創(chuàng)建加法計算器和用戶登錄功能時,介紹了接口測試和問題解決的一般流程,如使用Postman測試接口、查看日志、處理緩存問題等,確保開發(fā)過程中的高效協(xié)作和問題快速定位
    2024-10-10
  • 淺談Java多線程編程中Boolean常量的同步問題

    淺談Java多線程編程中Boolean常量的同步問題

    這篇文章主要介紹了淺談Java多線程編程中Boolean常量的同步問題,主要針對線程之間同步了不同的布爾對象的問題,需要的朋友可以參考下
    2015-10-10
  • java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類)

    java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類)

    這篇文章主要介紹了java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 淺談Java設(shè)計模式系列-裝飾器模式

    淺談Java設(shè)計模式系列-裝飾器模式

    這篇文章主要介紹了Java設(shè)計模式系列-裝飾器模式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 深入淺析drools中Fact的equality?modes

    深入淺析drools中Fact的equality?modes

    這篇文章主要介紹了drools中Fact的equality?modes的相關(guān)知識,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論