当前位置: 首页 > news >正文

wordpress域名网站搬家手机网站数据加载

wordpress域名网站搬家,手机网站数据加载,行业网站功能,沈阳关键词seo排名1.什么是groovy#xff1f; Groovy 是构建在 JVM 上的一个轻量级却强大的动态语言#xff0c;它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性。 Groovy 就是用 Java 写的#xff0c;Groovy 语法与 Java 语法类似#xff0c;Groovy 代码能够与 Java 代码很好地结合 Groovy 是构建在 JVM 上的一个轻量级却强大的动态语言它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性。 Groovy 就是用 Java 写的Groovy 语法与 Java 语法类似Groovy 代码能够与 Java 代码很好地结合也能用于扩展现有代码。相对于 Java它在编写代码的灵活性上有非常明显的提升Groovy 可以使用其他 Java 语言编写的库。 Groovy 是增强 Java 平台的唯一的脚本语言。它提供了类似于 Java 的语法内置映射Map、列表List、方法、类、闭包closure以及生成器。脚本语言不会替代系统编程语言两者是相互补充的。 系统编程语言的目的 开发复杂的算法或者数据结构实现计算密集型应用操作大型数据集实现定义良好的、变更缓慢的需求 脚本语言应用的目的 连接已有的组件处理经常变化的多种类型的实体具有图形化用户界面拥有快速变化的功能 集成groovy的好处 groovy跟java都是基于jvm的语言可以在java项目中集成groovy并充分利用groovy的动态功能;groovy兼容几乎所有的java语法开发者完全可以将groovy当做java来开发甚至可以不使用groovy的特有语法仅仅通过引入groovy并使用它的动态能力;groovy可以直接调用项目中现有的java类(通过import导入),通过构造函数构造对象并直接调用其方法并返回结果;groovy支持通过GroovyShell预设对象在groovy动态脚本中直接调用预设对象的方法。因此我们可以通过将spring的bean预设到GroovyShell运行环境中在groovy动态脚本中直接调用spring容器中bean来调用其方法这点对于spring项目非常方便 2.代码工程 实验目的 如何通过动态groovy脚本直接调用spring context中注册的bean的方法 pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspringboot-demo/artifactIdgroupIdcom.et/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdgroovy/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-autoconfigure/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all --dependencygroupIdorg.codehaus.groovy/groupIdartifactIdgroovy-all/artifactIdversion2.4.7/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.16.10/version/dependency/dependencies /project conotroller 将binding对象注入后在初始化方法init()中用binding对象构造GroovyShell对象在提供的execute接口实现中用GroovyShell对象生成Script脚本对象并调用Script的run()方法运行动态脚本并返回结果。 package com.et.groovy.controller;import com.et.groovy.component.TestScript; import groovy.lang.Binding; import groovy.lang.GroovyClassLoader; import groovy.lang.GroovyShell; import groovy.lang.Script; import org.codehaus.groovy.control.CompilerConfiguration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;import javax.annotation.PostConstruct;RestController RequestMapping(/groovy/script) public class GroovyScriptController {Autowiredprivate Binding groovyBinding;private GroovyShell groovyShell;PostConstructpublic void init(){GroovyClassLoader groovyClassLoader new GroovyClassLoader(this.getClass().getClassLoader());CompilerConfiguration compilerConfiguration new CompilerConfiguration();compilerConfiguration.setSourceEncoding(utf-8);compilerConfiguration.setScriptBaseClass(TestScript.class.getName());groovyShell new GroovyShell(groovyClassLoader, groovyBinding, compilerConfiguration);}RequestMapping(value /execute, method RequestMethod.POST)public String execute(RequestBody String scriptContent) {Script script groovyShell.parse(scriptContent); return String.valueOf(script.run());} } service package com.et.groovy.service;import groovy.lang.Binding; import groovy.lang.GroovyShell; import groovy.lang.Script; import org.springframework.stereotype.Service;Service public class TestService {public String testQuery(long id){return Test query success, id is id;}public static void main(String[] args) {Binding groovyBinding new Binding();groovyBinding.setVariable(testService, new TestService());GroovyShell groovyShell new GroovyShell(groovyBinding);String scriptContent import pers.doublebin.example.groovy.script.service.TestService\n def query new TestService().testQuery(1L);\n query;/*String scriptContent def query testService.testQuery(2L);\n query;*/Script script groovyShell.parse(scriptContent);System.out.println(script.run());} } config 首先配置类可以实现org.springframework.context.ApplicationContextAware接口用来获取应用上下文然后再配置类中通过应用上下文获取所有的bean并注册到groovy的Binding中 package com.et.groovy.config;import groovy.lang.Binding; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import java.util.Map;Configuration public class GroovyBindingConfig implements ApplicationContextAware {private ApplicationContext applicationContext;//Bean(groovyBinding)public Binding groovyBinding() {Binding groovyBinding new Binding();MapString, Object beanMap applicationContext.getBeansOfType(Object.class);for (String beanName : beanMap.keySet()) {groovyBinding.setVariable(beanName, beanMap.get(beanName));}return groovyBinding;}Bean(groovyBinding1)public Binding groovyBinding1() {MapString, Object beanMap applicationContext.getBeansOfType(Object.class);return new Binding(beanMap); }Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext applicationContext;} } components groovy支持通过GroovyShell预设对象在groovy动态脚本中直接调用预设对象的方法 package com.et.groovy.component;import groovy.lang.Script;public class TestScript extends Script {Overridepublic Object run() {return null;}public Integer add (Integer first, Integer second) {return first second;} } 以上只是一些关键代码所有代码请参见下面代码仓库 代码仓库 GitHub - Harries/springboot-demo: a simple springboot demo with some components for example: redis,solr,rockmq and so on. 3.测试 启动Spring Boot应用 测试执行groovy脚本 4.引用 GitHub - double-bin/groovy-script-example: Show how to execute dynamic groovy script in springboot controller.
http://www.zqtcl.cn/news/34481/

相关文章:

  • 网站风格对比信息表西安的商城网站设计
  • 模具培训网站建设网站设计 图片
  • 婚纱摄影网站seo方案网站文章推广
  • 宣传网站模板网站的弹窗怎么做
  • 帝国cms仿站工具wordpress本地访问速度慢
  • 网站被挂广告怎么办自助网站免费
  • 杭州做卖房子的工作哪个网站好中建一局集团有限公司官网
  • 中山做网站优化被黑网站查询
  • 武昌网站建设制作wordpress秀恩爱主题
  • 网站内容由什么组成部分软件培训机构排名
  • 品牌建设三年行动方案重庆网站seo费用
  • 网站维护总结人力外包项目外包
  • 可以专做福特配件吗外贸网站黑帽seo软件
  • 专业做鞋子的网站吗建立容错纠错机制
  • 腾讯风铃网站建设网站 三合一
  • 深圳网站建设 利科技有限公司上海十大室内设计公司排名
  • 青羊区网站建设制作网站公司首 荐乐云seo
  • 央企网站建设页面跳转页面紧急通知
  • 如何给网站做轮播图浙江建设继续教育网站首页
  • 网站建设上机课wordpress报价
  • 网站建设需要审批吗桂林网站网站建设
  • 海外设计网站建设摄影师个人网站模板
  • 南通门户网站建设方案哪些公司做网站维护的
  • dede做电影网站杨浦集团网站建设
  • 浅谈博星卓越网站建设竞价托管哪家公司好
  • 重庆黔江做防溺水的网站外贸seo网站搭建
  • 网站开发实验报告wordpress科技企业主题
  • 网站建设模板购买注册公司该怎么注册
  • 新建的网站怎么做seo优化wordpress远程图片本地换
  • 网站访客抓取系统怎样使用wordpress