spring5学习笔记(六)配置文件参数化+自定义类型转换器

配置文件参数化

把spring配置文件中需要经常修改的字符串信息转移到衣个更小的配置文件中。

  1. 经常需要修改的字符串?
    最有代表性的就是连接相关的参数
  2. 好处?不是功能层面而是维护层面,经常变化的字符串在配置文件中直接修改不方便。
    因为几千行配置文件不好找。不利于维护和修改
    3.转移到一个小的配置文件propertes
    ${}表示要通过运算来完成。
    spring5学习笔记(六)配置文件参数化+自定义类型转换器
    配置文件参数化利于spring配置文件的维护和修改。

配置文件参数化开发步骤

  1. 提供一个小的配置文件(properties)
  2. 找到经常修改的字符串信息,起变量名字,然后再properties里面赋值。
    maven中resources和java是平级的,编译时要汇总。
    calsspath:代表类路径,就是calsses文件夹。
  3. spring配置文件与小配置文件整合
    spring5学习笔记(六)配置文件参数化+自定义类型转换器
  4. spring配置文件中通过¥{key}获取小配置文件中对应的值
    spring5学习笔记(六)配置文件参数化+自定义类型转换器

自定义类型转换器

类型转换器

如何将配置文件中的字符串配置给Integer?
这就是spring类型转换器完成的任务
spring5学习笔记(六)配置文件参数化+自定义类型转换器
converter是一个接口,具体的转换来实现这个接口

自定义类型转换器

为什么要自定义?
比如字符串要转换为Date的情况
日期格式很多,不同国家也不一样,所以spring没有提供日期类型转换器,像这样spring没有提供的转换器,需要自己定义。
spring5学习笔记(六)配置文件参数化+自定义类型转换器
开发步骤:

  1. 写类,实现converter接口
    spring5学习笔记(六)配置文件参数化+自定义类型转换器
  2. 修改配置,告诉spring这个类型转换器的存在
    让spring把mydataconverter对象创建出来(bean标签)
    spring5学习笔记(六)配置文件参数化+自定义类型转换器
    类型转换器的注册。(等价于set方法对spring的成员变量赋值)
    spring5学习笔记(六)配置文件参数化+自定义类型转换器
  3. 细节分析
    日志格式部分代码耦合,替换成pattern成员变量,在配置文件中注入。(体会一下依赖注入)
    spring5学习笔记(六)配置文件参数化+自定义类型转换器
    这段conversionService的id属性不能换,否则spring不认识
    spring框架内置了日期类型的转换器,支持的日期格式:2020/05/01(不符合实际需求和用户习惯,所以自定义)