时间:2021-05-20
groovy是一种动态脚本语言,适用于一些可变、和规则配置性的需求,目前Spring提供ScriptSource接口,支持两种类型,一种是
ResourceScriptSource,另一种是 StaticScriptSource,但是有的场景我们需要把groovy代码放进DB中,所以我们需要扩展这个。
ResourceScriptSource:在 resources 下面写groovy类
StaticScriptSource:把groovy类代码放进XML里
DatabaseScriptSource:把groovy类代码放进数据库中
工程模块为:
ResourceScriptSource
groovy的pom
<dependency> <artifactId>groovy-all</artifactId> <groupId>org.codehaus.groovy</groupId> <version>2.1.9</version> <scope>compile</scope> </dependency>HelloService接口
package com.maple.resource.groovy;/** * @author: maple * @version: HelloService.java, v 0.1 2020年09月25日 21:26 maple Exp $ */public interface HelloService { String sayHello();}resources下面建groovy实现类
package com.maple.resource.groovyclass HelloServiceImpl implements HelloService { String name; @Override String sayHello() { return "Hello $name. Welcome to resource in Groovy."; }}在spring-groovy.xml中配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://poseDynamicBean(GroovyInfo groovyInfo) { DynamicBean bean = new DynamicBean(); String scriptName = groovyInfo.getClassName(); Assert.notNull(scriptName, "parser className cannot be empty!"); //设置bean的属性,这里只有id和script-source。 bean.put("id", scriptName); bean.put("script-source", GroovyConstant.SCRIPT_SOURCE_PREFIX + scriptName); return bean; } private void loadBeanDefinitions(ConfigurationXMLWriter config) { String contextString = config.getContent(); if (StringUtils.isBlank(contextString)) { return; } XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader((BeanDefinitionRegistry) this.applicationContext.getBeanFactory()); beanDefinitionReader.setResourceLoader(this.applicationContext); beanDefinitionReader.setBeanClassLoader(applicationContext.getClassLoader()); beanDefinitionReader.setEntityResolver(new ResourceEntityResolver(this.applicationContext)); beanDefinitionReader.loadBeanDefinitions(new InMemoryResource(contextString)); String[] postProcessorNames = applicationContext.getBeanFactory().getBeanNamesForType(CustomerScriptFactoryPostProcessor.class, true, false); for (String postProcessorName : postProcessorNames) { applicationContext.getBeanFactory().addBeanPostProcessor((BeanPostProcessor) applicationContext.getBean(postProcessorName)); } }}到此这篇关于Spring中集成Groovy的四种方式(小结)的文章就介绍到这了,更多相关Spring集成Groovy内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
钻展推广四种方方式是什么?如果您想了解钻展推广四种方式请往下看小小编整理的钻展推广四种方式。感谢大家的支持和阅读。以下的内容供大家借鉴。 钻展推广四种方式
Springboot内置了Tomcat的容器,我们今天来说一下Springboot的自启动流程。一、Spring通过注解导入Bean大体可分为四种方式,我们主要
上节课我们讲了一下CSS通过什么方式去控制页面,如果不记得,我来帮大家回忆一下,总共有四种方式行内方式、内嵌方式、链接方式、导入方式,大家通过这四种方式就可以实
1、Spring中集成camel-ftp近期项目中涉及到定期获取读取并解析ftp服务器上的文件,自己实现ftp-client的有些复杂,因此考虑集成camel-
常有下面四种方式:Notificationsdocument.addEventListener("deviceready",onDeviceReady,fals