我撰寫了一個攔截器來為 SpringBoot Java Rest API 生成服務日志。我有下面的代碼來定義自定義 WebMvcConfigurer:
package com.gem.common.interceptors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Autowired
LoggerInterceptor logInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(logInterceptor);
}
}
我想在不同的模塊中使用這個 InterceptorConfig。我可以打包并使用它還是需要在每個模塊中定義它?
uj5u.com熱心網友回復:
我想對于“其他模塊”,您是在問是否可以使該代碼也可用于其他 Spring Boot 應用程式?
如果是這種情況 - 那么:是的,您可以將其打包在一個 jar 中,并將其添加為所有其他模塊的依賴項。但是,我將在下面發布執行此操作的方法 - 只是為了警告您 - 如果它只是用于那個簡單的類,那么解決方案將不值得。
簡而言之,您需要做的是創建自己的外部工件(這通常通過 maven 或 gradle 完成。您為共享代碼創建一個新的 maven 專案。它需要依賴于一些基礎庫,以便您讓您的@Configuration注釋可用。按照該專案中的描述放置您的類,并創建一個檔案src/main/resources/META-INF/spring.factories檔案。在那里您需要指向該類。
然后構建該專案并將生成的 jar 上傳到包存盤庫。完成后,您可以將其作為依賴項添加到您的專案中。在啟動時,Spring boot 將找到該spring.factories檔案并自動包含在其初始化中提到的類。
另請注意,這只是一個高級解釋,您將需要更多詳細資訊。Spring有關于這個用例的很好的檔案,他們也有一個演示專案來展示這個擴展機制。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/355787.html
