最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot中的自定義Starter解讀

 更新時(shí)間:2023年12月27日 11:05:04   作者:學(xué)哥斌  
這篇文章主要介紹了SpringBoot中的自定義Starter解讀,啟動(dòng)器模塊其實(shí)是一個(gè)空的jar文件,里面沒有什么類、接口,僅僅是提供輔助性依賴管理,這些依賴可能用于自動(dòng)裝配或者其他類庫,需要的朋友可以參考下

1、說明

啟動(dòng)器模塊其實(shí)是一個(gè)空的jar文件,里面沒有什么類、接口,僅僅是提供輔助性依賴管理,這些依賴可能用于自動(dòng)裝配或者其他類庫;

在這里插入圖片描述

官方的命名方式是:spring-boot-starter-xxx,例如:spring-boot-starter-web。

官方提倡的自定義starter命名方式要和他們區(qū)分開,官方的xxx是在最后面,提議第三方自定義的starter的xxx放在最前面

即:xxx-spring-boot-starter,例如:mybatis-spring-boot-starter。

2、自定義starter

2.1 工程構(gòu)建

IDEA新建普通java空項(xiàng)目:

在這里插入圖片描述

在這里插入圖片描述

1、新建一個(gè)普通maven模塊:

在這里插入圖片描述

在這里插入圖片描述

2、新建一個(gè)SpringBoot模塊:

在這里插入圖片描述

構(gòu)建好了后,結(jié)構(gòu)如下:

在這里插入圖片描述

2.2 starter模塊導(dǎo)入autoconfigure模塊的依賴

在這里插入圖片描述

2.3 清理autoconfigure模塊

新建的空SpringBoot模塊刪除其他無關(guān)的文件和文件夾,同時(shí)pom.xml只留下sarter:

在這里插入圖片描述

2.4 編輯autoconfigure模塊

autoconfigure模塊總共要寫三個(gè)文件:service、properties和antoconfiguration。這三個(gè)分別的作用是:提供服務(wù)、配置類(定義服務(wù)相關(guān)的屬性配置)和自動(dòng)配置功能。

2.4.1 編寫服務(wù)

package cn.klb.boot.autoconfigure;
/**
 * @Author: Konglibin
 * @Description:
 * @Date: Create in 2020/4/24 11:21
 * @Modified By:
 */
public class CalculatorService {
    CalculatorProperties properties;
    public CalculatorProperties getProperties() {
        return properties;
    }
    public void setProperties(CalculatorProperties properties) {
        this.properties = properties;
    }
    public String getAreaOfCircle(Double radius) {
        Double area = properties.getPi() * radius * radius;
        return Double.toString(area);
    }
}

2.4.2 編寫配置類

package cn.klb.boot.autoconfigure;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
 * @Author: Konglibin
 * @Description:
 * @Date: Create in 2020/4/24 11:21
 * @Modified By:
 */
@ConfigurationProperties(prefix = "calculator.constant")
public class CalculatorProperties {
    private Double pi;
    private Double e;
    public Double getPi() {
        return pi;
    }
    public void setPi(Double pi) {
        this.pi = pi;
    }
    public Double getE() {
        return e;
    }
    public void setE(Double e) {
        this.e = e;
    }
}

2.4.3 編寫自動(dòng)配置并注入bean

package cn.klb.boot.autoconfigure;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @Author: Konglibin
 * @Description:
 * @Date: Create in 2020/4/24 11:22
 * @Modified By:
 */
@Configuration
@ConditionalOnWebApplication
@EnableConfigurationProperties(CalculatorProperties.class)
public class CalculatorServiceAutoConfiguration {
    @Autowired
    CalculatorProperties properties;
    @Bean
    public CalculatorService getCalculatorService(){
        CalculatorService service = new CalculatorService();
        service.setProperties(properties);
        return service;
    }
}

2.4.4 編寫自己的spring.factories

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.klb.boot.autoconfigure.CalculatorServiceAutoConfiguration

2.5 統(tǒng)一打包安裝

大部分工作都是在編輯autoconfigure模塊,編輯好之后工程如下:

在這里插入圖片描述

執(zhí)行maven的install命令(注意先安裝autoconfigure再安裝starter,否則會(huì)找不到包)。

3、測(cè)試

新建一個(gè)SpringBoot工程,并導(dǎo)入我們自己寫的啟動(dòng)器:

在這里插入圖片描述

編寫一個(gè)控制器:

package cn.klb.springboot_helloworld.controller;
import cn.klb.boot.autoconfigure.CalculatorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Author: Konglibin
 * @Description:
 * @Date: Create in 2020/4/24 11:44
 * @Modified By:
 */
@RestController
public class CalculatorController {
    @Autowired
    CalculatorService service;
    @RequestMapping("/cal")
    public String calculateArea(){
        return service.getAreaOfCircle(2.0);
    }
}

application.yaml配置文件配置屬性:

calculator:
  constant:
    pi: 3.14
    e: 2.0

啟動(dòng)后瀏覽器輸入自己定義的地址,得到結(jié)果如下:

在這里插入圖片描述

結(jié)果成功!

到此這篇關(guān)于SpringBoot中的自定義Starter解讀的文章就介紹到這了,更多相關(guān)自定義Starter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java文件操作練習(xí)代碼 讀取某個(gè)盤符下的文件

    java文件操作練習(xí)代碼 讀取某個(gè)盤符下的文件

    這篇文章主要介紹了java讀取某個(gè)盤符下的文件示例,代碼中要求的是絕對(duì)路徑,編譯過程中要注意絕對(duì)路徑問題和異常的抓取
    2014-01-01
  • 一小時(shí)迅速入門Mybatis之Prepared Statement與符號(hào)的使用

    一小時(shí)迅速入門Mybatis之Prepared Statement與符號(hào)的使用

    這篇文章主要介紹了一小時(shí)迅速入門Mybatis之Prepared Statement與符號(hào)的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot接入ftp/ftps并上傳文件和配置的代碼指南

    SpringBoot接入ftp/ftps并上傳文件和配置的代碼指南

    接入ftp服務(wù)器,在springboot上實(shí)現(xiàn)起來也不算復(fù)雜,本文主要講下如何在springboot下接入ftp服務(wù)上傳文件,并對(duì)出現(xiàn)的問題做一些記錄,ftp服務(wù)的參數(shù)配置等,需要的朋友可以參考下
    2024-12-12
  • Spring多種加載Bean方式解析

    Spring多種加載Bean方式解析

    本篇文章主要介紹了Spring多種加載Bean方式解析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java 并發(fā)和線程處理示例詳解

    Java 并發(fā)和線程處理示例詳解

    這篇文章主要介紹了Java 并發(fā)和線程處理示例詳解,通過本文的介紹,我們?cè)敿?xì)了解了 Java 并發(fā)和線程處理的基本概念、創(chuàng)建線程的方法、確保線程安全性以及避免死鎖的技巧,需要的朋友可以參考下
    2026-02-02
  • Java 中ThreadLocal類詳解

    Java 中ThreadLocal類詳解

    什么是ThreadLocal?顧名思義它是local variable(線程局部變量)。它的功用非常簡(jiǎn)單,就是為每一個(gè)使用該變量的線程都提供一個(gè)變量值的副本,是每一個(gè)線程都可以獨(dú)立地改變自己的副本,而不會(huì)和其它線程的副本沖突。從線程的角度看,就好像每一個(gè)線程都完全擁有該變量。
    2016-03-03
  • Java修改圖片大小尺寸的簡(jiǎn)單實(shí)現(xiàn)

    Java修改圖片大小尺寸的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要介紹了Java修改圖片大小尺寸的簡(jiǎn)單實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串

    劍指Offer之Java算法習(xí)題精講數(shù)組與字符串

    跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • IDEA中Maven Projects窗口實(shí)現(xiàn)顯示

    IDEA中Maven Projects窗口實(shí)現(xiàn)顯示

    文章介紹了如何在IDEA中打開Maven項(xiàng)目視圖,包括點(diǎn)擊最左下角的Maven小框、通過菜單欄View->ToolWindows->Maven Projects打開,以及使用快捷鍵Help->Find Action(Ctrl+Shift+A)并輸入Maven Projects來實(shí)現(xiàn)
    2026-02-02
  • java集合繼承關(guān)系圖分享

    java集合繼承關(guān)系圖分享

    這篇文章主要為大家詳細(xì)介紹了java集合繼承關(guān)系圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評(píng)論

莲花县| 威远县| 台东县| 怀来县| 巴南区| 紫云| 含山县| 东阿县| 灵丘县| 大田县| 将乐县| 桂平市| 贺兰县| 额济纳旗| 武汉市| 凤阳县| 大洼县| 雷山县| 六盘水市| 色达县| 邵阳县| 北票市| 庄浪县| 锦州市| 广河县| 华宁县| 墨玉县| 蚌埠市| 左权县| 五华县| 化州市| 华容县| 洛浦县| 铜鼓县| 哈密市| 江川县| 伊川县| 泾阳县| 饶阳县| 竹山县| 突泉县|