项目中需要使用Spring框架的MessageSource实现国际化,由于一些要求,需要读取项目外的propertie文件,现在总结配置过程中的一些经验。
1-spring.messages.basename配置:本次项目会使用多个路径的文件,在代码中直接会以List<String> 形式接受值,因此在配置的时候可以这样配置(以yaml文件为例):
spring:
messages:
basename: file:/home/dev/user/messages/messages, file:/home/dev/user/queues/queues
这样配置,在代码中可以直接获取成一个String集合,like this:
@Value("${spring.messages.basename}")
List<String> basenames;
2-spring.messages.basename配置了路径,但是获取不到对应文件:如果配置的路径如下,则不会读取到文件
spring:
messages:
basename: /home/dev/user/messages/messages, /home/dev/user/queues/queues
如果是配置项目外的文件,应该像1中的写法,在路径开头以file:作为路径起始,如果是项目中,则可以是classpath:/path这样的写法,并且最后一定是要读取的文件的前缀,比如定义的是messages_en.properties,那么路径的最后一定是messages,像这样/parent-path/messages,不能写成/parent-path/