国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用

這篇具有很好參考價值的文章主要介紹了【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

從零開始封裝自己的starter并且引入到其他項目中使用

簡介

本文將介紹如何從零開始封裝自己的starter并且引入到其他項目中使用

為什么要自己封裝starter?
這樣可以對spring以及其他第三方提供的starter做二次封裝或者封裝一些自己需要的內(nèi)容提供給其他項目使用,提高項目級的代碼復(fù)用性。

一、創(chuàng)建一個新的spring-boot項目

首先我們需要新建一個spring-boot項目,為了防止發(fā)生maven依賴問題,我們這里不選擇任何spring提供的組件,如果添加了請確保引用的項目中沒有這個組件。另外不要忘記改maven源

【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用,項目整理,spring boot,后端,java,starter

二、創(chuàng)建META-INF/spring.factories

把test文件夾刪掉,main目錄下創(chuàng)建resources/META-INF/spring.factories文件
【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用,項目整理,spring boot,后端,java,starter

把主程序也刪掉,我們的starter不需要啟動

【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用,項目整理,spring boot,后端,java,starter

三、測試案例

接下來編寫一個攔截器,攔截所有方法并且打印一些內(nèi)容看看效果

先把pom文件中亂七八糟的東西刪干凈,并引入一個web模塊

	<dependencies>

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

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

    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

Config文件

package com.ez4sterben.mytestspringbootstarter.config;

import com.ez4sterben.mytestspringbootstarter.interceptor.MyTestInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 我的測試web mvc配置
 *
 * @author ez4sterben
 * @date 2023/07/18
 */
@Configuration
public class MyTestWebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyTestInterceptor())
                .addPathPatterns("/**");
    }
}

Interceptor文件

package com.ez4sterben.mytestspringbootstarter.interceptor;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 我的測試攔截器
 *
 * @author ez4sterben
 * @date 2023/07/18
 */
@Component
public class MyTestInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("--------------------starter中的攔截器生效了!------------------------");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}

spring.factories文件中加入下面這段內(nèi)容開啟自動配置

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.ez4sterben.mytestspringbootstarter.config.MyTestWebMvcConfig

目前項目結(jié)構(gòu)如下

【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用,項目整理,spring boot,后端,java,starter

四、打包starter

打開idea右側(cè)maven依次點擊生命周期中的install以及package
【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用,項目整理,spring boot,后端,java,starter

五、使用starter

打開我們的本地maven倉庫

【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用,項目整理,spring boot,后端,java,starter

我們的starter已經(jīng)是jar包的形式了,接下來就打開自己的其他項目來引用這個starter

        <dependency>
            <groupId>com.ez4sterben</groupId>
            <artifactId>mytest-spring-boot-starter</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

隨后刷新maven啟動項目即可,隨便找個接口測試一下
【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用,項目整理,spring boot,后端,java,starter

【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用,項目整理,spring boot,后端,java,starter
測試成功!

六、總結(jié)

本文做了一個比較基礎(chǔ)的案例,大家可以嘗試這種方式封裝自己的starter,而且在starter中已經(jīng)引入了web模塊,所以在引入starter的項目中就不用再引入了,通過這種方式可以把在很多項目都固定寫的基本內(nèi)容封裝起來,比如通用返回值、基本常量、基本枚舉類以及一些統(tǒng)一鑒權(quán)和統(tǒng)一異常攔截。可以讓這些內(nèi)容一次配置好后在各個項目中均可以使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-596332.html

到了這里,關(guān)于【SpringBoot】從零開始封裝自己的starter并且引入到其他項目中使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • LeetCode 刷題記錄——從零開始記錄自己一些不會的

    LeetCode 刷題記錄——從零開始記錄自己一些不會的

    1. 最多可以摧毀的敵人城堡數(shù)目 題意 思路 兩層循環(huán),太low了 用一個變量記錄前一個位置 代碼 2. 到達(dá)終點的數(shù)字 題意 思路 代碼 3. 單詞的壓縮編碼 題意 思路 代碼 思路2 去找到是否不同的單詞具有相同的后綴,我們可以將其反序之后插入字典樹中。例如,我們有 “time”

    2024年02月09日
    瀏覽(44)
  • 從零開始用Nodejs搭建一個MQTT服務(wù)器,并且用stm32通過esp8266進(jìn)行消息訂閱和發(fā)布

    從零開始用Nodejs搭建一個MQTT服務(wù)器,并且用stm32通過esp8266進(jìn)行消息訂閱和發(fā)布

    最近在做一個物聯(lián)網(wǎng)項目,需要用到服務(wù)器進(jìn)行數(shù)據(jù)的存儲和數(shù)據(jù)的請求和發(fā)送,之前我用過onenet平臺上的http服務(wù),雖然能通過get和post請求進(jìn)行數(shù)據(jù)的提交和發(fā)送,但是平臺上的數(shù)據(jù)發(fā)生改變卻不能主動推送給esp8266,與我此次的項目不符合,所以pass。然后我了解了下mqtt協(xié)

    2024年02月04日
    瀏覽(29)
  • 從零開始畫自己的DAG作業(yè)依賴圖(一)--前期準(zhǔn)備

    從零開始畫自己的DAG作業(yè)依賴圖(一)--前期準(zhǔn)備

    背景: 由于業(yè)務(wù)場景需要展示作業(yè)之間的依賴關(guān)系,由于一些開源的插件和當(dāng)前的業(yè)務(wù)邏輯有一些沖突,個人打算嘗試從零開始,一點點實現(xiàn)自己的DAG圖。同時用博客記錄自己實現(xiàn)過程和總結(jié),不正確的地方,歡迎指正提升。 場景分析: 數(shù)據(jù)開發(fā)中常常有作業(yè)之間的依賴,

    2024年02月05日
    瀏覽(27)
  • 一篇SEO指南:新手如何從零開始優(yōu)化自己的網(wǎng)站

    一篇SEO指南:新手如何從零開始優(yōu)化自己的網(wǎng)站

    在如今的數(shù)字時代,擁有一個優(yōu)化良好的網(wǎng)站對于任何企業(yè)或個人來說都是至關(guān)重要的。但是,對于SEO新手來說,如何從零開始優(yōu)化自己的網(wǎng)站可能是一項看似艱巨的任務(wù)。在本文中,我們將為您提供一份SEO指南,幫助您了解從零開始優(yōu)化自己的網(wǎng)站的過程。 確定您的目標(biāo)關(guān)

    2024年02月02日
    瀏覽(28)
  • 構(gòu)建自己的ChatGPT:從零開始構(gòu)建個性化語言模型

    構(gòu)建自己的ChatGPT:從零開始構(gòu)建個性化語言模型

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬

    2024年02月15日
    瀏覽(28)
  • html從零開始9:javaScript簡介,語句、標(biāo)識符,變量,JavaScript引入到文件【搬代碼】
  • 從零開始復(fù)現(xiàn)seaformer(語義分割)訓(xùn)練自己的數(shù)據(jù)集——linux

    從零開始復(fù)現(xiàn)seaformer(語義分割)訓(xùn)練自己的數(shù)據(jù)集——linux

    出于模型輕量化需求,需對原有的皮膚分割模型進(jìn)行重新研發(fā)。seaformer是作為今年復(fù)旦大學(xué)和騰訊聯(lián)合提出的輕量級語義分割算法,具有很好的參考價值。因此,作者基于seaformer算法對自研數(shù)據(jù)集進(jìn)行訓(xùn)練,完成輕量級皮膚分割模型的開發(fā)。 1.下載地址:https://github.com/fudan

    2024年04月12日
    瀏覽(25)
  • 記錄自己從零開始創(chuàng)建個人小程序到發(fā)布的大致過程

    記錄自己從零開始創(chuàng)建個人小程序到發(fā)布的大致過程

    首先不管是要創(chuàng)建個人小程序還是公眾號等,都要打開微信公眾平臺。本文以微信小程序為例,創(chuàng)建一個手工花名片。本文只用于自己學(xué)習(xí)記錄。參考微信社區(qū) 1、打開微信公眾,點擊注冊 鏈接:https://mp.weixin.qq.com/ 2、點擊注冊后,跳轉(zhuǎn)頁面,點擊小程序 3、填寫注冊小程序

    2024年02月12日
    瀏覽(22)
  • 從零基礎(chǔ)開始開發(fā)自己的第一個微信小程序

    從零基礎(chǔ)開始開發(fā)自己的第一個微信小程序

    通過本篇blog,你可以熟悉從零開始,搭建小程序開發(fā)環(huán)境,并運行起自己的第一個小程序。 1、 注冊賬號 2、 下載開發(fā)工具搭建開發(fā)環(huán)境 3、 創(chuàng)建工程,編寫代碼 4、 手機(jī)上查看效果 通過以上四步就能創(chuàng)建屬于自己的小程序了。 注冊完成后是這樣的 小程序開發(fā)工具下載地址

    2024年02月14日
    瀏覽(92)
  • 深入淺出Python:從零開始搭建自己的Web服務(wù)器

    第一部分:前言與環(huán)境準(zhǔn)備 1. 前言 隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的應(yīng)用都運行在Web上,而Web服務(wù)器則成為了支撐這一切的關(guān)鍵。在本文中,我們將利用Python來創(chuàng)建自己的簡易Web服務(wù)器。通過這個過程,你不僅可以深入了解Web服務(wù)器的工作原理,還能夠掌握Python的基礎(chǔ)知識。

    2024年02月03日
    瀏覽(89)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包