详细解读BSF脚本引擎

简介: 详细解读BSF脚本引擎

BSF即为Bean Scripting Framework的缩写

官方网址:

它是一个支持在Java应用程序内调用脚本语言 (Script),并且支持脚本语言直接访问Java对象和方法的一个开源项目

BSF最初是IBM的Alpha工作组的项目后来贡献给了Apache

下载地址:

可以使用它在java application中使用javascript, Python, XSLT, Perl, tcl, ……等脚本语言. 反过来也可以,就是在这些脚本语言中调用任//代码效果参考:http://www.zidongmutanji.com/bxxx/533610.html

何已经注册过 了的JavaBean,java object。

这是一个很好的idea。可以使得Java能够更好的于各种流行脚步语言整合,实现不同语言之间的交互作用

样例代码(使用javascript作为测试的脚本语言):

需要jar包:

bsf.jar

js.jar

import org.apache.bsf.BSFEngine;

import org.apache.bsf.BSFException;

import org.apache.bsf.BSFManager;

/

BSF(Bean Scripting Framework)测试

@author archie

since 上午09:45:02

/

public class BSFTest {

public static void main(String【】 args) {

//Script脚本

String script=

"function dealBean()" +

"{"

+ " str = bsf.lookupBean('u');"

+ "return \"ID:\"+str.id+\"用户名:\"+str.uname+\"地址:\"+str.address+\"_调用方法:\"+str.toString()+"+

"'\t'+\"的bean内容被获得了;\";" +

"}";

try {

///代码效果参考:http://www.zidongmutanji.com/zsjx/421911.html

/BSF管理器

BSFManager bsfManager=new BSFManager();

//BSF引擎

BSFEngine bsfEngine = bsfManager.loadScriptingEngine("javascript");

/

Bean

/

User u=new User();

u.setId(1);

u.setUname("archie");

u.setAddress("上海松江");

//执行Script脚本

bsfEngine.eval("javascript", 0, 0, script);

//BSFManager注册一个Bean

bsfManager.registerBean("u", u);

//bsfManager.registerBean("u", "archie");

//执行脚本中方法并返回

Object result = bsfEngine.eval("javascript", 0, 0, "dealBean();");

System.out.println(result.toString());

} catch (BSFException e) {

e.printStackTrace();

}

}

}

运行效果:

by archie

相关文章
|
8月前
|
Java Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之部署python项目时,构建过程报错,怎么解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
前端开发 JavaScript Java
hyengine 编译问题之复用脚本引擎如何解决
hyengine 编译问题之复用脚本引擎如何解决
|
5月前
|
自然语言处理 前端开发 JavaScript
V8引擎的运行原理
【9月更文挑战第1天】V8引擎的运行原理
82 0
|
8月前
|
JavaScript 前端开发 Java
详细解读BSF脚本引擎
详细解读BSF脚本引擎
38 0
|
8月前
|
运维 Serverless 网络安全
Serverless 应用引擎产品使用合集之能否用一个顶层函数,在云端动态的增加函数脚本或删除脚本
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
8月前
|
并行计算 前端开发 Serverless
Serverless 应用引擎操作报错合集之启动命令没有可执行权限,该怎么办
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
8月前
|
算法 前端开发 Serverless
Serverless 应用引擎产品使用合集之启动函数的命令可以如何实现
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
9月前
|
Java Serverless 开发者
Serverless 应用引擎问题之应用启动更改如何解决
在进行Serverless应用开发和部署时,开发者可能会遇到不同类型的报错信息;本合集着重收录了Serverless环境中常见的报错问题及其解决策略,以助于开发者迅速诊断和解决问题,保证服务的连续性和可用性。
503 1
|
9月前
|
SQL 关系型数据库 Shell
postgresql|数据库|批量执行SQL脚本文件的shell脚本
postgresql|数据库|批量执行SQL脚本文件的shell脚本
411 0
|
C语言 Python
脚本引擎初步研究
由于组态软件里要嵌入脚本引擎,以前虽然在IOServer中嵌入了VBScript,但脚本引擎的概念实在是不甚明白,这几天集中突击了脚本引擎的相关知识,收获还不少。