电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

淺談SpringBoot如何自定義Starters

瀏覽:96日期:2022-08-12 08:42:58
目錄一、Starters原理1.1 Starters場景啟動器二、自定義Starters三、代碼步驟一、Starters原理1.1 Starters場景啟動器

1、場景需要用到的依賴是什么?

比如依賴的jar

2、如何編寫自動配置?

以WebMvcAutoConfiguration自動配置為例:

@Configuration@ConditionalOnWebApplication@ConditionalOnClass({ Servlet.class, DispatcherServlet.class,WebMvcConfigurerAdapter.class })@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class,ValidationAutoConfiguration.class })public class WebMvcAutoConfiguration {public static final String DEFAULT_PREFIX = '';public static final String DEFAULT_SUFFIX = '';

@Configuration指定這是一個配置類@ConditionalOnXXX 在指定條件成立的情況下自動配置類生效

自動裝配順序在特定自動裝配Class之前 @AutoConfigureBefore在特定自動裝配Class之后@AutoConfigureAfter指定順序@AutoConfigureOrder

@Bean 給容器中添加組件@ConfigurationPropertie結合相關xxxProperties類來綁定相關的配置

@ConfigurationProperties(prefix = 'spring.mvc')public class WebMvcProperties {}

@EnableConfigurationProperties 讓xxxProperties生效加入到容器中

@Configuration@Import(EnableWebMvcConfiguration.class)@EnableConfigurationProperties({ WebMvcProperties.class, ResourceProperties.class })public static class WebMvcAutoConfigurationAdapter extends WebMvcConfigurerAdapter {}

配置自動裝配Bean:自動配置類要能加載將需要啟動就加載的自動配置類,將標注@Configuration的自動配置類配置在META?INF/spring.factories下,自動配置類就會生效

# Auto Configureorg.springframework.boot.autoconfigure.EnableAutoConfiguration=org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration,org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,

3、模式

啟動器(starter)

淺談SpringBoot如何自定義Starters

啟動器只用來做依賴導入專門寫一個自動配置模塊啟動器依賴自動配置,別人只需要引入啟動器(starters)

mybatis-spring-boot-starter 自定義啟動器名 -spring-boot-starter

二、自定義Starters

構建項目:1.先創建一個空工程

淺談SpringBoot如何自定義Starters淺談SpringBoot如何自定義Starters

2、創建兩個模塊分別是啟動器starter的maven模塊spring的初始化器創建的自動配置模塊

啟動器maven模塊

淺談SpringBoot如何自定義Starters

自定義的starters

淺談SpringBoot如何自定義Starters

淺談SpringBoot如何自定義Starters

spring的初始化器創建模塊(創建自動配置相關的模塊)

淺談SpringBoot如何自定義Starters

三、代碼步驟

在啟動器starter的pom文件中引入配置類的坐標ming-spring-boot-starter-autoconfigurer

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>com.ming.springboot</groupId> <artifactId>ming-spring-boot-starter</artifactId> <version>1.0-SNAPSHOT</version> <dependencies><dependency> <groupId>com.ming.springboot</groupId> <artifactId>ming-spring-boot-starter-autoconfigurer</artifactId> <version>0.0.1-SNAPSHOT</version></dependency> </dependencies></project>

寫一個打招呼的功能

package com.ming.springboot;/** * 打招呼的 * */public class HelloService { HelloProperties helloProperties; public HelloProperties getHelloProperties() {return helloProperties; } public void setHelloProperties(HelloProperties helloProperties) {this.helloProperties = helloProperties; } public String sayHello(String name){return helloProperties.getPrefix()+'-'+name+helloProperties.getSuffix(); }}

HelloProperties 和Helloservice 進行屬性綁定的

package com.ming.springboot;import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = 'com.ming')public class HelloProperties { private String prefix; private String suffix; public String getPrefix() {return prefix; } public void setPrefix(String prefix) {this.prefix = prefix; } public String getSuffix() {return suffix; } public void setSuffix(String suffix) {this.suffix = suffix; }}

自動配置類

package com.ming.springboot;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;@Configuration@ConditionalOnWebApplication //web應用才生效@EnableConfigurationProperties(HelloProperties.class)public class HelloServiceAutoConfiguration { @Autowired HelloProperties helloProperties; @Bean public HelloService helloService(){HelloService helloService = new HelloService();helloService.setHelloProperties(helloProperties);return helloService; }}

然后將這兩個模塊安裝到maven倉庫中先安裝配置模塊因為starter模塊依賴配置模塊,別人調用我們的starter模塊就行了

淺談SpringBoot如何自定義Starters

然后將啟動器starter也裝到倉庫中,別人就可以用坐標引入了

在別的項目中引入自定義的啟動器starter

<!--引入自定義的starter--><dependency> <groupId>com.ming.springboot</groupId> <artifactId>ming-spring-boot-starter</artifactId> <version>1.0-SNAPSHOT</version></dependency>

配置application.properties

#自定義啟動器startercom.ming.prefix=一起學習com.ming.suffix=你學費了嗎

測試

@Autowired HelloService helloService; @Test public void starterTest(){String sayHello = helloService.sayHello('自定義starter');System.out.println(sayHello); }

到此這篇關于淺談SpringBoot如何自定義Starters的文章就介紹到這了,更多相關Spring Boot自定義Starters內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 土壤养分检测仪|土壤水分|土壤紧实度测定仪|土壤墒情监测系统-土壤仪器网 | 液压油缸-液压缸厂家价格,液压站系统-山东国立液压制造有限公司 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 建筑消防设施检测系统检测箱-电梯**检测仪器箱-北京宇成伟业科技有限责任公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 数控走心机-走心机价格-双主轴走心机-宝宇百科 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 车件|铜件|车削件|车床加工|五金冲压件-PIN针,精密车件定制专业厂商【东莞品晔】 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | 振动筛-交叉筛-螺旋筛-滚轴筛-正弦筛-方形摇摆筛「新乡振动筛厂家」 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 福建成考网-福建成人高考网 | 亿诺千企网-企业核心产品贸易| 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 |