详细解读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月前
|
监控 关系型数据库 Serverless
Serverless 应用引擎常见问题之工作流这执行输出通过jsonpath过滤如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
426 3
|
7月前
|
Java Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之部署python项目时,构建过程报错,怎么解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
自然语言处理 前端开发 JavaScript
V8引擎的运行原理
【9月更文挑战第1天】V8引擎的运行原理
68 0
|
7月前
|
JavaScript 前端开发 Java
详细解读BSF脚本引擎
详细解读BSF脚本引擎
33 0
|
7月前
|
并行计算 前端开发 Serverless
Serverless 应用引擎操作报错合集之启动命令没有可执行权限,该怎么办
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
8月前
|
SQL 缓存 关系型数据库
MySQL常见问题解决和自动化安装脚本
这篇内容包含了两个主要部分:解决MySQL登录问题和处理GPG密钥问题。当MySQL密码正确但无法登录时,可以通过执行SQL命令`ALTER USER`和`flush privileges`来修改和重置密码。对于MySQL安装时的GPG密钥错误,首先需要强制删除旧的MySQL仓库包,导入新的GPG公钥,然后安装MySQL服务器。如果遇到GPG检查错误,可以使用`--nogpgcheck`参数忽略检查来安装。最后,提供了一个自动化安装MySQL的脚本,用于检查旧版本、卸载残留、安装MySQL8并启动服务。
431 1
|
8月前
|
前端开发 Serverless Shell
Serverless 应用引擎操作报错合集之在阿里云函数计算中,laravel zip包使用示例的start.sh脚本启动时出现错误代码如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
8月前
|
Java Serverless 开发者
Serverless 应用引擎问题之应用启动更改如何解决
在进行Serverless应用开发和部署时,开发者可能会遇到不同类型的报错信息;本合集着重收录了Serverless环境中常见的报错问题及其解决策略,以助于开发者迅速诊断和解决问题,保证服务的连续性和可用性。
500 1
|
SQL NoSQL Java
SQL查询引擎原理浅析
# SQL的诞生 SQL英文全称是Structured Query Language,中文名即结构化查询语言,是一门专门用来查询数据的声明式编程语言。 我先解释一下声明式语言的概念,编程语言有两个分类: * 命令式:手把手教机器做事情 * 声明式:告诉机器任务,让它自己想办法解决 举个例子,假设你家里有机器人,你想让它帮忙拿一个在客厅桌子上的白色杯子给你。 如果用命令式编程的方
640 0
SQL查询引擎原理浅析
|
存储 机器学习/深度学习 运维
阿里云图数据库GDB V3引擎发布,加速开启“图智”未来
无论是学术界还是产业界,都对图数据库有比较高的预期。Gartner发布的《2021年十大数据和分析技术趋势》中提到:“到2025年图技术在数据和分析创新中的占比将从2021年的10%上升到80%。”应用需求推动着技术的发展,在GDB V3的引擎设计过程中,通过重建并改进数据存储架构、优化数据流转过程、自研计算引擎、重写执行引擎,以及资源池化、无锁化编程等一系列性能优化方法,从而逐步逼近物理硬件的极限性能。提供超越传统图数据库百倍的查询能力,为图技术的应用,解锁了更多的可能性。
907 0
阿里云图数据库GDB V3引擎发布,加速开启“图智”未来