亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過 spring.factories 將 SpringBootApp 遷移到庫?

如何通過 spring.factories 將 SpringBootApp 遷移到庫?

鴻蒙傳說 2022-06-30 11:27:02
我們已經構建了一個 Spring 服務發現解決方案,該解決方案@Component通過@Service在根包級別通過@SpringBootApplication. 該項目遵循標準的 maven/spring 布局:project  src/main/java    service      - ServiceA.java      - ServiceB.java      ...    model      - modelA.java      ...    component      - ComponentA.java      - ComponentB.java    BootApp.java    pom.xml我們現在想將它作為一個庫在內部分發,這樣做需要一個spring.factories文件(請參閱marathon 是如何做到的/請參閱spring autoconfig docs)。查看其他服務發現實現,例如marathonand eureka,看來我應該刪除所有自動裝配注釋(即@Componentand @Service),而是手動將所有組件/bean 配置為一個或多個@Configuration類。該應用程序已經自動裝配和引導超過十個類 - 我寧愿不必重構和手動連接它們。我的問題:有什么方法可以簡單地保留現有的自動裝配/項目結構并spring.factories在類似于組件掃描的情況下將其拾???就像是:org.springframework.boot.autoconfigure.EnableAutoConfiguration=project.BootApp或者org.springframework.boot.autoconfigure.EnableAutoConfiguration=project.*spring.factories關于如何在沒有大量@Configuration課程的情況下支持重構,還有其他提示或最佳實踐嗎?是否可以分開差異并讓我們的大部分內部對象自動裝配,然后手動配置公共對象,如DiscoveryClientand ServiceRegistery(參見spring cloud SPI)并在中引用它們spring.factories?
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

事實證明,可以以@ComponentScan非常相似的方式使用@SpringBootApplication


@Configuration

@ComponentScan("com.bnymellon.tsg.discovery.springcloud.autoconfig")

public class BootApp {


}

關鍵區別在于@SpringBotApplicationcontains @EnableAutoConfiguration,它在這里表現不佳。


PS - 我沒有繼承,spring-starter-parent所以spring.factories沒有包含在構建的工件中。必須添加以下內容pom.xml


<build>

    <resources>

        <resource>

            <directory>src/main/resources</directory>

            <includes>

                <include>**/*.factories</include>

            </includes>

        </resource>

    </resources>

</build>

我想在一天結束時,通過注釋自動裝配(例如@Service)是一種有效的方法,我在這個問題中認為它與 spring.factories 不兼容是不正確的。


查看完整回答
反對 回復 2022-06-30
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號