在Springboot中从数据库获取速度模板

时间:2016-09-21 08:44:07

标签: database spring-boot velocity

我必须在Spring启动和Spring数据项目中从数据库中获取速度模板。我还没有尝试过任何代码,因为我是所有技术(Velocity,Spring启动和数据)的新手,而没有在google上找到任何东西。有没有人试图从db获取模板,请建议我一些链接或其他任何我可以参考?

更新:我在db中有绑定类(在grails中),我必须从java访问进程方法。在db类中, class bindingSubject {
    def日志
    def process = {pub,listForMail - >

    def mapBinding = [:]
    def fund
    def perimeters = pub.sub.entities
    perimeters.each(){ entity ->
         if (fu == null){
            if (entity instanceof S)
                fu = entity.fu
            if (entity instanceof Fund)
                fu = fu
         }
    }mapBinding.entity = fu.name                                             return mapBinding
}

}   和写入

的java代码

- >加载脚本

 mapScriptClass = new HashMap<String, Object>();

            if (script != null) {
                if (mapScriptClass.get(name) == null) {

                    GroovyCodeSource groovySource = new GroovyCodeSource(script,name,"");
                    GroovyClassLoader classLoader = new GroovyClassLoader(this.getClass().getClassLoader());

                    // Load string as Groovy script class.
                    Class scriptClass = classLoader.parseClass(groovySource);

                    try {
                        Object classInstance  =  scriptClass.newInstance();

                        ApplicationContext ctx = (ApplicationContext)ServletContextHolder
                                .getServletContext().getAttribute(ApplicationAttributes.APPLICATION_CONTEXT);

                        ctx.getAutowireCapableBeanFactory().autowireBeanProperties(classInstance, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false);
                        mapScriptClass.put(name, classInstance);
                        return classInstance;

要从db调用进程方法(在grails中这是有效的,如何在java中执行?)

 Object scriptClass = loadScriptService.getScriptClass("scriptBindingSubject"+templateMail.getId(),
                                templateMail.getScriptBindingSubject());
                        if (scriptClass != null) {
                            try{
                                bindingSubject = scriptClass.process(pub,subMail); 
                            }

现在我不知道如何从java(到db)调用process方法来绑定属性

感谢。

1 个答案:

答案 0 :(得分:1)

在编写时,模板存储在数据库中。

所以你需要阅读它们(使用JDBC或JPA)并根据它们的存储方式,你将得到一个String,char []或byte []。

您可以将所有这些转换为java.io.Reader之类的 CharArrayReaderStringReader, 如何在这个[{3}}

中看到的字节[]

tutorial有一个方法

createTemplate(Reader reader)

最终为读者创建模板。 希望有所帮助。