為什么在IDEA中使用SpringBoot的時(shí)候, 我們?cè)谂渲梦募锌偰茉谳斎雜pring時(shí)會(huì)得到很多的輸入提示?

image.png
這是由于在Spring的項(xiàng)目中 (我們依賴的jar) 包含了很多 meta-data, 也就是元數(shù)據(jù), 這些數(shù)據(jù)并不是在項(xiàng)目運(yùn)行中有什么作用. 而是在開發(fā)期間能夠通過ide的處理給我們更多的便捷提示.
下面我們一起來看一下依賴的jar里面都有什么?

image.png
- spring-configuration-metadata.json
這個(gè)就是spring配置元數(shù)據(jù). 我們經(jīng)常輸入的server.port在這里面就有配置.
image.png
上圖就是自動(dòng)提示的內(nèi)容. 我們一起看看在metadata中都是怎么寫的
image.png
{
"name": "server.port", # 配置名稱
"type": "java.lang.Integer", # 數(shù)據(jù)類型
"description": "Server HTTP port.", # 描述
"sourceType": "org.springframework.boot.autoconfigure.web.ServerProperties", # 配置項(xiàng)來源
"defaultValue": 8080 # 默認(rèn)值
}
再來看看來源的類

image.png
這樣就看到了數(shù)據(jù)出處了.
顯而易見的是, 除了默認(rèn)值之外, 字段的注釋也會(huì)一并被寫到metadata中.
那么接下來看看如何添加默認(rèn)值.

image.png
給字段配置上默認(rèn)值之后會(huì)自動(dòng)的被處理到metadata中

image.png
這樣在輸入的時(shí)候就會(huì)有提示

image.png
以上就是spring-boot-configuration-processor大致的作用了.
maven依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
版本號(hào)隨著你的spring-boot版本變化
當(dāng)你編寫好屬性文件, 并添加注解之后, 需要你編譯一下項(xiàng)目才能在配置文件編寫的時(shí)候彈出提示。如果不編譯是不會(huì)有提示的。 編譯好的文件在target包下可以看到

image.png
這個(gè)包之前我也沒怎么用過, 沒關(guān)注過, 最近看別的搭建的項(xiàng)目引用了,特來學(xué)習(xí)寫個(gè)短文幫自己整理記錄一下。
如果有什么不正確的還請(qǐng)留言告知更正。

