有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java配置DataSourceSourceLoader

关于我的previous question,我想知道如何配置DatasourceResourceLoader以满足我的需求

更具体地说,我是这样调用#parse()宏的

#parse("$vendorid/template-name.vm")

我从中选取模板的表的组织方式类似于this

如何解释#parse()宏以仅拾取针对特定供应商ID放置的模板

请注意以下几点:

  1. 我不想更改表结构或name列的值
  2. name列可能包含冗余值,但是vendoridname上的组合永远不会相同

编辑

我知道Velocity的IncludeEventHandler,如果我可以通过覆盖此事件来解决我的问题,我该怎么做


共 (2) 个答案

  1. # 1 楼答案

    Velocity的IncludeEventHandler无法解决您的问题,因为它只能更改资源的路径,而不能获取资源本身

    不过,您可以在数据库端创建一个视图,让您准确地获取模板:

    CREATE VIEW templates_view (id VARCHAR(100), html CLOB, ts DATETIME)
    AS SELECT CONCAT(vendorid, '/', name) FROM templates;
    

    这就是MySQL语法,对于其他引擎,您将根据需要使用时间戳类型和/或| |连接运算符

    这样,您就有了一个单键列来访问模板,并且可以初始化DataSourceSourceLoader以使用此视图

  2. # 2 楼答案

    根据thisreply,用ResouceLoader扩展类并将其用作DataSourceResourceLoader可以无缝地工作