我有一個處理常見問題和應用方面的核心項目,名爲「Common」。服務項目將這個核心項目用於通用流程。如何訪問從屬文件夾的屬性
我必須在「常用」中管理異常處理,並且還必須從共同的屬性文件中讀取消息。但服務也可以有自定義消息。
所以我把一個MessageUtils普通
MessageUtils.java
@Component
public class MessageUtils {
@Autowired
private MessageSource messageSource;
private static MessageSourceAccessor accessor;
@PostConstruct
private void init() {
accessor = new MessageSourceAccessor(messageSource, Locale.ENGLISH);
}
public static String getMessage(String messageKey) {
return accessor.getMessage(messageKey);
}
}
共同點,我有common-messages.properties
|-src/main/resources
|--common-messages_en.properties
讓一個被命名SERVICE_1服務,它依賴通用。
SERVICE_1也有service-messages_en.properties
|-src/main/resources
|--service-messages_en.properties
要注入常見的具體配置,我宣佈一個共同的配置類並將其導入服務的春季啓動初始化類。我還將common-messages_en.properties定義爲CommonConfig中的Property Source。
CommonConfig.java
@ComponentScan({ "com.example.common.core"})
@EntityScan({ "com.example.common.entity" })
@EnableJpaRepositories(basePackages = { "com.example.common.dao" })
@PropertySource(value = { "classpath:common-messages_en.properties"})
public class CommonConfig {
}
所以,在SERVICE_1我有這將啓動SpringBoot應用BOOTAPP類。 CommonConfig也在那裏導入。
@SpringBootApplication
@Import(CommonConfig.class)
public class BootApp extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(BootApp.class, args);
}
}
當我打電話
MessageUtils.getMessage("someMessageKey.thatDefinedIn.Service");
這沒關係,我可以閱讀服務的消息。
但是,當我想要讀取服務中的常見消息;
MessageUtils.getMessage("someMessageKey.thatDefinedIn.Common");
它得到NoSuchMessageException。
如何合併不同屬性的不同屬性文件?