第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

多模塊項目中的 Bean

多模塊項目中的 Bean

白衣非少年 2022-07-06 17:28:38
我正在開發(fā)一個由 SpringBoot 驅(qū)動的多模塊項目,其中有模塊core和web. 我對電子郵件、密碼等使用自定義驗證器。驗證器被定義為core模塊的一部分。我需要一些存儲在message.properties文件中的自定義反饋消息,這是一個示例定義:core.model.validator.EmailValidator.email_invalid=Invalid email address我也有如下所示的ValidEmail界面:@Target({TYPE, FIELD, ANNOTATION_TYPE})@Retention(RUNTIME)@Constraint(validatedBy = UserEmailValidator.class)@Documentedpublic @interface ValidEmail {    String message() default "{core.model.validator.EmailValidator.email_invalid}";    Class<?>[] groups() default {};    Class<? extends Payload>[] payload() default {};}顯然,我應(yīng)該定義一個 bean,LocalValidatorFactoryBean它應(yīng)該包含一個本地驗證器,設(shè)置為使用本地消息源。這是我的web模塊中的內(nèi)容:@SpringBootConfigurationpublic class MvcWebConfig implements WebMvcConfigurer {    // ...skipped...    @Bean    public MessageSource messageSource() {        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();        messageSource.setBasename("classpath:messages");        messageSource.setDefaultEncoding("UTF-8");        return messageSource;    }    @Bean    public LocalValidatorFactoryBean getValidator() {        LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();        localValidatorFactoryBean.setValidationMessageSource(messageSource());        return localValidatorFactoryBean;    }}(完整版可在此處獲得)它工作正常。但我想將這些 bean 的定義移到core模塊中。我在那里有以下課程:@SpringBootConfigurationpublic class AppConfig {    // ...skipped...}(完整版可在此處獲得)一旦我將這兩個 bean 的定義移動到core模塊(到AppConfig類)中,我的驗證錯誤就不再得到解決,我只得到一個消息標簽({core.model.validator.EmailValidator.email_invalid})而不是英文描述(Invalid email address)。有人會這么好心告訴我我做錯了什么嗎?提前感謝您的幫助!PS這是完整源代碼的鏈接:https ://github.com/melnik13/pass-pass/tree/d24eebfc48610e924308d2da4cd978ac965e2e4e ,希望對您有所幫助。
查看完整描述

2 回答

?
慕村9548890

TA貢獻1884條經(jīng)驗 獲得超4個贊

實施了解決方法。


bean 在core模塊中定義:


@Configuration

public class CoreModuleConfiguration {


    // ...


    @Bean(name="coreLocalValidatorFactoryBean")

    public LocalValidatorFactoryBean getValidator() {

        LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();

        localValidatorFactoryBean.setValidationMessageSource(messageSource());

        return localValidatorFactoryBean;

    }


}

(完整版在這里)


web然后在模塊中提到了相同的bean :


@Configuration

public class WebModuleConfiguration implements WebMvcConfigurer {


    // ...


    private final LocalValidatorFactoryBean localValidatorFactoryBean;


    @Autowired

    public WebModuleConfiguration(

            // ...

            @Qualifier("coreLocalValidatorFactoryBean") LocalValidatorFactoryBean localValidatorFactoryBean

    ) {

        // ...

        this.localValidatorFactoryBean = localValidatorFactoryBean;

    }


    // ...


    @Bean(name = "webLocalValidatorFactoryBean")

    public LocalValidatorFactoryBean getValidator() {

        return this.localValidatorFactoryBean;

    }


}


好吧,它有點難看,但它確實有效。


查看完整回答
反對 回復(fù) 2022-07-06
?
眼眸繁星

TA貢獻1873條經(jīng)驗 獲得超9個贊

javadocs to @SpringBootConfigurationclass中,據(jù)說

應(yīng)用程序應(yīng)該只包括一個@SpringBootConfiguration

所以首先我會檢查這個核心配置是否已經(jīng)加載。@Configuration使用@Import@ComponentScan在 web 配置類中標記核心配置類可能是有意義的。


查看完整回答
反對 回復(fù) 2022-07-06
  • 2 回答
  • 0 關(guān)注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號