获取Resource的三种方式

1. new Resource()

接口:
image.png
实现:
image.png

2. ResourceLoader【不用new Resource了】

image.png

通配路径 ResourcePatternResolver【匹配pattern指定的文件,返回数组】

ResourcePatternResolver extends ResourceLoader
image.png
image.png

3. 注解注入Resource【通常使用】

image.png

读取 .properties 配置文件的几种方式

Java 读取 .properties 配置文件的几种方式 - 暴脾气大大 - 博客园

Properties

stream从哪来:

  • classLoader.getResourceAsStream()
    • image.png
  • FileReader获取文件stream
    • image.png
  • 先获取Resource再转Stream
    • image.png

      ResourceBundle

  • 通过ResourceBundle.getBundle()获取ResourceBundle
  • 这里ResourceBundle是PropertyResourceBundle

image.png

  • 通过Stream获取ResourceBundle

    ResourceBundle和Properties 区别

    image.png
    关于 ResourceBundle和Properties 区别联系(个人总结)_平行线的凝聚的技术博客_51CTO博客

  • ResourceBundle是用来国际化,会自动选择语言对应的properties(myres_zh_CN.properties)

  • 关于resource bundle 资源的编码,这个必须是iso-8859-1编码,(不可以是utf-8编码)所以对于非西方语系,必须用JDK的自带工具native2ascii转换。

    国际化

    MessageSource

    image.png
    ResourceBundleMessageSource中有ResourceBundle
    image.png
    ResourceBundle定位模板
    MessageFormat用来格式化字符串

    ReloadableResourceBundleMessageSource

    image.png

  • ReloadableResourceBundleMessageSource是通过PropertyesPersister来存储数据。

  • ResourceBundleMessageSource是存储的ResourceBundle。

ResourceBundle

PropertyResourceBundle

image.png

MessageFormat【格式化字符串】

image.png
image.png