中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

成都個人學(xué)做網(wǎng)站如何推廣小程序平臺

成都個人學(xué)做網(wǎng)站,如何推廣小程序平臺,精品網(wǎng)站設(shè)計,用wordpress還是discuzSpring Boot Starter是一種簡化Spring Boot應(yīng)用開發(fā)的機(jī)制,它可以通過引入一些預(yù)定義的依賴和配置,讓我們快速地集成某些功能模塊,而無需繁瑣地編寫代碼和配置文件。Spring Boot官方提供了很多常用的Starter,例如spring-boot-star…

Spring Boot Starter是一種簡化Spring Boot應(yīng)用開發(fā)的機(jī)制,它可以通過引入一些預(yù)定義的依賴和配置,讓我們快速地集成某些功能模塊,而無需繁瑣地編寫代碼和配置文件。Spring Boot官方提供了很多常用的Starter,例如spring-boot-starter-web、spring-boot-starter-data-jpa等,但有時候我們也需要根據(jù)自己的業(yè)務(wù)需求,創(chuàng)建一些自定義的Starter,以便在不同的項目中復(fù)用一些通用的功能或組件。本文將以一個簡單的日期格式化功能為例,介紹如何創(chuàng)建一個自定義的Spring Boot Starter,并說明其原理和使用方法。

一、Starter的命名規(guī)范

在創(chuàng)建一個自定義的Starter之前,我們需要先確定它的名稱。Starter的命名有一種習(xí)慣,官方的Starter一般都是以spring-boot-starter-為前綴,后面跟上模塊名,例如spring-boot-starter-web表示集成了Web開發(fā)相關(guān)的依賴和配置。而我們自定義的Starter一般都是以模塊名為前綴,后面跟上-spring-boot-starter,例如data-spring-boot-starter表示集成了日期格式化相關(guān)的依賴和配置。這樣做的目的是為了避免與官方或其他第三方提供的Starter產(chǎn)生沖突或混淆。

二、Starter項目的結(jié)構(gòu)

創(chuàng)建一個自定義的Starter項目和創(chuàng)建一個普通的Spring Boot項目沒有太大區(qū)別,我們可以使用IDE或者Spring Initializr來快速生成一個基本的項目結(jié)構(gòu)。

一個典型的Starter項目結(jié)構(gòu)如下:

data-spring-boot-starter
├── src
│ ? ├── main
│ ? │ ? ├── java
│ ? │ ? │ ? └── com.data.util
│ ? │ ? │ ? ? ? ├── autoconfigure // 自動配置類所在的包
│ ? │ ? │ ? ? ? │ ? ├── DataAutoConfiguration.java // 自動配置類
│ ? │ ? │ ? ? ? │ ? └── DataProperties.java // 屬性類
│ ? │ ? │ ? ? ? └── util // 業(yè)務(wù)功能類所在的包
│ ? │ ? │ ? ? ? ? ? └──DataUtil.java // 業(yè)務(wù)功能類
│ ? │ ? └── resources
│ ? │ ? ? ? └── META-INF
│ ? │ ? ? ? ? ? └── spring.factories // Spring Boot自動裝配文件
│ ? └── test
│ ? ? ? └── java
├── pom.xml // Maven依賴管理文件
└── README.md // 項目說明文檔

三、Starter項目的依賴

在創(chuàng)建一個自定義的Starter項目時,我們需要在pom.xml文件中添加一些必要的依賴。首先,我們需要添加spring-boot-starter作為基礎(chǔ)依賴,它提供了Spring Boot核心功能和默認(rèn)配置。其次,我們需要添加spring-boot-configuration-processor作為編譯時依賴,它可以幫助我們生成屬性類和配置元數(shù)據(jù),并且設(shè)置為可選依賴,避免傳遞給其他項目。最后,我們需要添加我們要集成的功能模塊相關(guān)的依賴,例如在本例中,我們要集成日期格式化功能,所以我們不需要添加其他額外的依賴。以下是一個示例:

<dependencies><!-- 基礎(chǔ)依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- 編譯時依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>
</dependencies>

四、Starter項目的屬性類

在創(chuàng)建一個自定義的Starter項目時,我們需要編寫一個屬性類,用來定義我們要集成的功能模塊所需的配置項,并且使用@ConfigurationProperties注解來指定配置文件中的前綴。例如,在本例中,我們要集成日期格式化功能,所以我們需要定義一個日期格式的配置項,并且使用data作為配置文件中的前綴。以下是一個示例:

package com.data.util.autoconfigure;import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = "data")
public class DataProperties {private String pattern = "yyyy-MM-dd hh:mm:ss"; // 日期格式,默認(rèn)為"yyyy-MM-dd hh:mm:ss"// 省略getter和setter方法
}

五、Starter項目的業(yè)務(wù)功能類

在創(chuàng)建一個自定義的Starter項目時,我們需要編寫一個或多個業(yè)務(wù)功能類,用來實現(xiàn)我們要集成的功能模塊的具體邏輯。例如,在本例中,我們要集成日期格式化功能,所以我們需要定義一個日期工具類,用來根據(jù)配置的日期格式將日期轉(zhuǎn)換為字符串。以下是一個示例:

package com.data.util.util;import java.text.SimpleDateFormat;
import java.util.Date;public class DataUtil {private String pattern; // 日期格式public DataUtil(String pattern) {this.pattern = pattern;}public String dateToStr(Date date){SimpleDateFormat sdf = new SimpleDateFormat(pattern);String format = sdf.format(date);return format;}
}

六、Starter項目的自動配置類


在創(chuàng)建一個自定義的Starter項目時,我們需要編寫一個自動配置類,用來根據(jù)屬性類和業(yè)務(wù)功能類,創(chuàng)建相應(yīng)的Bean對象,并且使用@EnableConfigurationProperties注解來啟用屬性類,這個注解里面?zhèn)魅雽傩灶惖淖止?jié)碼文件。使用@ConditionalOnClass注解來判斷業(yè)務(wù)功能類是否存在,使用@ConditionalOnProperty注解來判斷在對應(yīng)的依賴了該Starter的SpringBoot配置文件中是否有相應(yīng)的配置項。例如,在本例中,我們要集成日期格式化功能,所以我們需要根據(jù)DataProperties和DataUtil,創(chuàng)建一個DataUtil類型的Bean對象,并且使用data.enabled作為配置文件中的開關(guān)項。以下是一個示例:

package com.data.util.autoconfigure;import com.data.util.util.WoniuUtil;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
@EnableConfigurationProperties(DataProperties.class)
@ConditionalOnClass(DataUtil.class)
@ConditionalOnProperty(prefix = "data", name = "enabled", havingValue = "true")
public class DataAutoConfiguration {private final DataProperties dataProperties;public DataAutoConfiguration(DataProperties dataProperties) {this.dataProperties = dataProperties;}@Beanpublic DataUtil dataUtil() {return new DataUtil(dataProperties.getPattern());}
}

七、Starter項目的自動裝配文件

在創(chuàng)建一個自定義的Starter項目時,我們需要在resources/META-INF目錄下創(chuàng)建一個名為spring.factories的文件,用來指定我們的自動配置類,讓Spring Boot能夠在啟動時自動掃描并加載它。以下是一個示例:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.data.util.autoconfigure.DataAutoConfiguration

八、Starter項目的使用方法

在完成了一個自定義的Starter項目后,我們可以將它打包成jar文件,并且發(fā)布到Maven倉庫或者本地倉庫,這樣就可以在其他項目中引用它了。例如,在本例中,我們可以在其他項目的pom.xml文件中添加如下依賴:

<dependency><groupId>com.data</groupId><artifactId>data-spring-boot-starter</artifactId><version>1.0.0</version>
</dependency>

然后,在其他項目的配置文件中添加如下配置項:

data:enabled: true # 開啟日期格式化功能pattern: yyyy-MM-dd # 設(shè)置日期格式,可選,默認(rèn)為yyyy-MM-dd hh:mm:ss

最后,在其他項目的代碼中,我們可以通過注入WoniuUtil類來調(diào)用日期格式化功能。例如:

package com.example.demo;import com.data.util.util.WoniuUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Date;@RestController
public class DemoController {@Autowiredprivate WoniuUtil woniuUtil;@GetMapping("/date")public String date() {Date date = new Date();String str = woniuUtil.dateToStr(date);return str;}
}

這樣,我們就可以通過訪問/date來獲取格式化后的日期字符串了。

九、Starter項目的原理


Starter項目的核心原理是基于Spring Boot的自動裝配機(jī)制,即根據(jù)類路徑和配置文件中的條件,動態(tài)地創(chuàng)建和注入Bean對象到應(yīng)用上下文中。Starter項目通過在resources/META-INF目錄下創(chuàng)建一個名為spring.factories的文件,來指定自動配置類的全限定名,讓Spring Boot在啟動時能夠掃描并加載它。自動配置類則通過一系列的注解來定義和控制自動裝配的邏輯,例如:

  • @Configuration注解標(biāo)識這是一個配置類,用來創(chuàng)建和注冊Bean對象。
  • @EnableConfigurationProperties注解啟用屬性類,并將其注入到配置類中。
  • @ConditionalOnClass注解判斷類路徑中是否存在指定的類,如果存在則滿足條件。
  • @ConditionalOnProperty注解判斷配置文件中是否存在指定的屬性,如果存在并且值與期望相符,則滿足條件。
  • @Bean注解根據(jù)屬性類和業(yè)務(wù)功能類,創(chuàng)建相應(yīng)類型的Bean對象,并注冊到應(yīng)用上下文中。

當(dāng)所有的條件都滿足時,Starter項目就能實現(xiàn)自動裝配的功能,讓我們無需手動編寫和配置Bean對象,只需引入依賴和設(shè)置屬性即可。

http://www.risenshineclean.com/news/53641.html

相關(guān)文章:

  • 海淀做網(wǎng)站好的公司google免費入口
  • 自己如何做團(tuán)購網(wǎng)站信息流廣告素材網(wǎng)站
  • 網(wǎng)站制作服務(wù)合同寧波seo整站優(yōu)化軟件
  • wordpress做論壇網(wǎng)站全域seo
  • 有經(jīng)驗的順德網(wǎng)站建設(shè)成人職業(yè)技能培訓(xùn)班
  • 大網(wǎng)站制作公司成都培訓(xùn)機(jī)構(gòu)排名前十
  • 萊蕪網(wǎng)站建設(shè)電話長沙網(wǎng)站制作策劃
  • 貴州省住房和城鄉(xiāng)建設(shè)廳網(wǎng)站官網(wǎng)企業(yè)文化
  • 南通做外貿(mào)的公司網(wǎng)站seo怎么弄
  • 介紹好的電影網(wǎng)站模板下載優(yōu)化排名seo
  • 做網(wǎng)站換服務(wù)器怎么整免費個人主頁網(wǎng)站
  • 北京國互網(wǎng)網(wǎng)站建設(shè)電話標(biāo)題seo是什么意思
  • 山東今天新冠疫情最新消息新鄉(xiāng)seo網(wǎng)絡(luò)推廣費用
  • 推廣網(wǎng)站的軟件網(wǎng)頁查詢
  • 杭州的網(wǎng)站建設(shè)公司有哪些百度搜索熱度指數(shù)
  • 響應(yīng)式網(wǎng)站開發(fā)步驟商鋪營銷推廣方案
  • 公司做網(wǎng)站費用外貿(mào)網(wǎng)站建站和推廣
  • 什么是網(wǎng)站微商城的建設(shè)seo建站教學(xué)
  • 騰訊官方網(wǎng)站網(wǎng)絡(luò)營銷成功案例
  • 北京旅游設(shè)計網(wǎng)站建設(shè)網(wǎng)站優(yōu)化推廣seo公司
  • 商城手機(jī)網(wǎng)站制作口碑營銷有哪些
  • 網(wǎng)站建設(shè)銀行卡死期存款提前取出百度學(xué)術(shù)論文查重免費檢測
  • 深圳網(wǎng)站制作公司訊息站長統(tǒng)計幸福寶下載
  • 萊蕪高新區(qū)管委會網(wǎng)站求職seo服務(wù)
  • 蘇州企業(yè)網(wǎng)站優(yōu)化成都新一輪疫情
  • 網(wǎng)站建設(shè)費賬務(wù)處理英雄聯(lián)盟世界排名
  • 企業(yè)網(wǎng)站建站寧波seo公司
  • 做蛋糕招聘網(wǎng)站域名申請
  • 響應(yīng)式網(wǎng)站建設(shè)平臺鄭州網(wǎng)絡(luò)推廣平臺
  • 建設(shè)網(wǎng)站的技術(shù)手段優(yōu)化大師有必要花錢嗎