javascript
SpringBoot第二特性:Starter启动依赖_01_自己动手写一个Starter组件
文章目錄
- 一、前言
- 二、自己動手寫一個Starter組件(服務提供方)
- 2.1 新建組件類(服務提供方)
- 2.2 配置類和配置屬性類
- 2.3 完成統一格式,resources目錄
- 三、服務使用方
- 3.1 新建使用者類
- 3.2 使用者導入依賴
- 3.3 使用者HelloController.java
- 3.4 使用者application.properties配置文件要配置好
- 四、啟動redis,運行成功
- 4.1 直接用windows 上安裝使用redis
- 4.2 操作成功
- 4.3 使用者application.properties沒有提示如何解決?
- 4.4 整個組件的方方面面
- 五、小結
一、前言
在springboot中,starter組將的啟動依賴是基于自動裝配的(服務提供方和服務接收方通過spring.properties來關聯),所以承接自動裝配,這一篇博客講解starter啟動依賴,自己動手寫一個starter組件。
例如常見的Redis,提供兩種客戶端jedis 和 Lettuce,查看RedisAutoConfiguration.class就可以知道
我們來基于Redisson自己寫一個redis客戶端組件。
二、自己動手寫一個Starter組件(服務提供方)
2.1 新建組件類(服務提供方)
新建一個maven quickstart myredis-spring-boot-starter組件
導入spring-boot-starter依賴(不是spring-boot-starter-web依賴,現在開發第三方組件,不是開發項目)和redission依賴
金手指:這里使用<scope>true</scope>是阻止傳遞依賴,避免沖突,就是使用方使用你這個第三方組件的時候,這個第三方組件中使用的依賴不會傳遞的引入到使用方,避免使用方重復引入,這是開發第三方組件的風格。
2.2 配置類和配置屬性類
2.3 完成統一格式,resources目錄
金手指:
1、resources目錄的創建:先make directory,再次make Directory as / Resources Root
2、META-INF目錄和spring.factories分開創建,先在resouces下創建META-INF目錄,然后在MATA-INF目錄下創建spring.factories文件
starter組件 Lifecycle maven clean and maven install 被使用者使用
金手指:這里要刪除<scope>true</scope>,否則即使maven install成功,使用者也找不到RedissonClient等相關的。
這個第三方組件的quickstart工程,自帶的App.java沒用,刪去,這里刪去了。
三、服務使用方
3.1 新建使用者類
新建一個springboot項目,直接使用http://start.aliyun.com/(阿里提供,注意是http,不要用https)
構建好了
金手指:
使用maven構建項目的時候,pom.xml中的springboot中的依賴的artifactId有兩種,包括
spring-boot-starter前綴為官方包 基于條件控制bean的裝載,例如:spring-boot-starter-web
spring-boot-starter后綴為非官方包,第三方包,使用第三方提供的spring.factories文件控制bean的裝載,例如:mybatis-spring-boot-starter
spriing-boot-starter作前綴還是后綴,這是一個約定。
3.2 使用者導入依賴
3.3 使用者HelloController.java
金手指:
Bucket 是字符串的操作 。
金手指:
idea左邊可以快速查找依賴,無需快捷鍵,選中左邊任意一個文件,直接輸入即可查找。
3.4 使用者application.properties配置文件要配置好
四、啟動redis,運行成功
4.1 直接用windows 上安裝使用redis
4.2 操作成功
不知道為什么?
使用者application.properties文件中,csdn.myredis.host=localhost啟動成功,csdn.myredis.host=192.168.43.26(本機局域網IP) 啟動失敗.
因為是被序列化過的,所以為"\x04>\bcsdn.com",多了一個前綴。
4.3 使用者application.properties沒有提示如何解決?
解決方式:分兩步走,導入依賴+配置文件
然后,META-INF中添加文件additional-spring-configuration-metadata.json
實際上,任意一個springboot工程中,都有這個文件的,additional-spring-configuration-metadata.json,隨便就可以找到
實際上,使用者工程中,可以看到兩個additional-spring-configuration-metadata.json 和 spring-configuration-metadata.json
4.4 整個組件的方方面面
在使用方,可以看到整個組件的方方面面,如下:
五、小結
starter組件開發、自動裝配原理結束。
天天打碼,天天進步!!!
服務使用方工程代碼:https://download.csdn.net/download/qq_36963950/12599055
服務提供方工程代碼:https://download.csdn.net/download/qq_36963950/12599053
總結
以上是生活随笔為你收集整理的SpringBoot第二特性:Starter启动依赖_01_自己动手写一个Starter组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NLP判断语言情绪_最新中文NLP开源工
- 下一篇: JavaScript 学习中