springboot專案啟動會報4個載入不到的debug提示,可改可不改

威兰达發表於2024-05-13
1. 因為啟動的時候會報提示: Unable to locate LocaleResolver with name 'localeResolver': using default [org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver@17162122]
   有4個這樣的--Resolver,(具體每個Resolver在下面註釋有說明)要想不報這個載入提示,如果用不到這4個元件,考慮禁用: 即返回一個空元件

springboot專案啟動會報4個載入不到的debug提示,可改可不改

解決辦法:

2, 新建一個配置類:

package com.aswatson.cdc.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ThemeResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;

/**
 * 因為啟動的時候會報提示: Unable to locate LocaleResolver with name 'localeResolver': using default [org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver@17162122]
 * 有4個這樣的--Resolver,要想不報這個載入提示,如果用不到這4個元件,考慮禁用: 即返回一個空元件
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    /**
     * LocaleResolver:用於解析客戶端請求的 Locale(區域設定)資訊,以便應用程式可以根據使用者的地區設定提供相應的國際化支援。
     * 在這裡,日誌顯示未能找到名為 'localeResolver' 的 LocaleResolver Bean,因此預設地使用了 AcceptHeaderLocaleResolver。

     * ThemeResolver:用於解析主題(Theme)資訊,以便應用程式可以根據使用者的主題偏好來渲染頁面。
     * 日誌顯示未能找到名為 'themeResolver' 的 ThemeResolver Bean,因此預設地使用了 FixedThemeResolver。

     * RequestToViewNameTranslator:用於根據請求資訊確定檢視的名稱。日誌顯示未能找到名為 'viewNameTranslator' 的 RequestToViewNameTranslator Bean,
     * 因此預設地使用了 DefaultRequestToViewNameTranslator。

     * FlashMapManager:用於管理 FlashMap,它是一種用於在請求之間傳遞資料的機制。日誌顯示未能找到名為 'flashMapManager' 的 FlashMapManager Bean,
     * 因此預設地使用了 SessionFlashMapManager。
     */
    // 禁用 LocaleResolver
    @Bean
    public AcceptHeaderLocaleResolver localeResolver() {
        // 返回一個空的AcceptHeaderLocaleResolver,該解析器將不會做任何事情,因此LocaleResolver將被禁用
        return new AcceptHeaderLocaleResolver();
    }

    // 禁用 ThemeResolver
    @Bean
    public ThemeResolver themeResolver() {
        // 返回一個空的ThemeResolver,該解析器將不會做任何事情,因此ThemeResolver將被禁用
        return new ThemeResolver() {
            @Override
            public String resolveThemeName(javax.servlet.http.HttpServletRequest request) {
                return null;
            }
            @Override
            public void setThemeName(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, String themeName) {
                // Do nothing
            }
        };
    }

    // 禁用 RequestToViewNameTranslator
    @Bean
    public org.springframework.web.servlet.RequestToViewNameTranslator viewNameTranslator() {
        // 返回一個空的RequestToViewNameTranslator,該翻譯器將不會做任何事情,因此RequestToViewNameTranslator將被禁用
        return request -> null;
    }

    // 禁用 FlashMapManager
    @Bean
    public org.springframework.web.servlet.FlashMapManager flashMapManager() {
        // 返回一個空的FlashMapManager,該管理器將不會做任何事情,因此FlashMapManager將被禁用
        return new org.springframework.web.servlet.support.SessionFlashMapManager();
    }

}

3, 結果:

springboot專案啟動會報4個載入不到的debug提示,可改可不改

相關文章