freemarker注册全局spring bean变量

初衷:参考了好多资料,也看了官方API,可能是因为理解能力有限都没能实现将spring bean注册为全局变量。

场景:在ftl中需要访问一个或多个spring bean中的属性

实现:

第一步: 创建一个java类实现freemarker的TemplateHashModel接口

 如下图

上图中注入了一个DistributorInitialization的spring bean,重写的get(String key)方法里可根据不同的key返回不同的spring bean。

第二步:配置文件

配置FreemarkerConfigurer

第三步:ftl中调用

${globalVar.xxxx.attr}     xxxx为第一步中get(String key)中的参数 ,可根据需要传入不同的值返回不同的spring bean

                                       attr为返回的spring bean中的某个属性


你可能感兴趣的:(freemarker注册全局spring bean变量)