我必须在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方法来绑定属性
感谢。
答案 0 :(得分:1)
在编写时,模板存储在数据库中。
所以你需要阅读它们(使用JDBC或JPA)并根据它们的存储方式,你将得到一个String,char []或byte []。
您可以将所有这些转换为java.io.Reader之类的 CharArrayReader,StringReader, 如何在这个[{3}}
中看到的字节[]tutorial有一个方法
createTemplate(Reader reader)
最终为读者创建模板。 希望有所帮助。