Код: Выделить всё
@Configuration
public class ResponseMessageConfig {
@Value("${response-message.path:}")
String messageFilePath;
@Value("${response-message.cache:}")
Integer cacheInSeconds;
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
// Load from external path (e.g., /config/messages.properties)
messageSource.setBasename(messageFilePath);
// Set encoding to avoid issues with special characters
messageSource.setDefaultEncoding("UTF-8");
// Reload messages every "cacheInSeconds" seconds
messageSource.setCacheMillis(cacheInSeconds);
String msg = messageSource.getMessage(String.format("%s.%s", "0400-0001", "code"), null, Locale.ENGLISH);
return messageSource;
}
}
< /code>
У меня есть еще один класс, который автоматизирует класс сообщений, как ниже: < /p>
@Slf4j
@Component
public class ResponseMessageUtil {
@Autowired
private MessageSource messageSource;
private static ResponseMessageUtil instance;
@PostConstruct
private void init() {
instance = this;
}
public static String getMessage(String status, Object[] args) {
String msg = instance.messageSource.getMessage(String.format("%s.%s", status, "code"), args, Locale.ENGLISH);
return msg;
}
< /code>
Проблема, с которой я сталкиваюсь, заключается в том, что я получаю nosuchmessageexception при попытке читать из ответа Emplyemessageutil с использованием метода getMessage (). Но тот же код работает для меня внутри ответа MesseSageConfig < /p>
Exception: "No message found under code '0400-0001.code' for locale 'en'."
Подробнее здесь: https://stackoverflow.com/questions/794 ... springboot