详细解读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

相关文章
|
3月前
|
存储 NoSQL JavaScript
MongoDB存储过程实战:聚合框架、脚本、最佳实践,一文全掌握!
【8月更文挑战第24天】MongoDB是一款备受欢迎的文档型NoSQL数据库,以灵活的数据模型和强大功能著称。尽管其存储过程支持不如传统关系型数据库,本文深入探讨了MongoDB在此方面的最佳实践。包括利用聚合框架处理复杂业务逻辑、封装业务逻辑提高复用性、运用JavaScript脚本实现类似存储过程的功能以及考虑集成其他工具提升数据处理能力。通过示例代码展示如何创建订单处理集合并定义验证规则,虽未直接实现存储过程,但有效地演示了如何借助JavaScript脚本处理业务逻辑,为开发者提供更多实用指导。
71 2
|
2月前
|
自然语言处理 前端开发 JavaScript
V8引擎的运行原理
【9月更文挑战第1天】V8引擎的运行原理
48 0
|
5月前
|
JavaScript 前端开发 Java
详细解读BSF脚本引擎
详细解读BSF脚本引擎
20 0
|
5月前
|
并行计算 前端开发 Serverless
Serverless 应用引擎操作报错合集之启动命令没有可执行权限,该怎么办
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
SQL 存储 Oracle
C#利用IDbCommand实现通用数据库脚本执行程序
C#利用IDbCommand实现通用数据库脚本执行程序
|
6月前
|
SQL 关系型数据库 Shell
postgresql|数据库|批量执行SQL脚本文件的shell脚本
postgresql|数据库|批量执行SQL脚本文件的shell脚本
325 0
|
SQL 分布式计算 大数据
电商项目之 DWD 用户启动日志表 Shell 脚本编写|学习笔记
快速学习电商项目之 DWD 用户启动日志表 Shell 脚本编写
电商项目之 DWD 用户启动日志表 Shell 脚本编写|学习笔记
|
C语言 Python
脚本引擎初步研究
由于组态软件里要嵌入脚本引擎,以前虽然在IOServer中嵌入了VBScript,但脚本引擎的概念实在是不甚明白,这几天集中突击了脚本引擎的相关知识,收获还不少。
|
监控 Python
日志服务CLI ETL - 扩展UDF
介绍日志服务命令行工具ETL灵活的扩展UDF,包括协议、规则与样例等
3019 0