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

相关文章
|
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月前
|
边缘计算 安全 算法
阿里云丁玉杰:构建全场景服务引擎
2023全球边缘计算大会·上海站,阿里云边缘云演讲分享
184 0
|
SQL NoSQL Java
SQL查询引擎原理浅析
# SQL的诞生 SQL英文全称是Structured Query Language,中文名即结构化查询语言,是一门专门用来查询数据的声明式编程语言。 我先解释一下声明式语言的概念,编程语言有两个分类: * 命令式:手把手教机器做事情 * 声明式:告诉机器任务,让它自己想办法解决 举个例子,假设你家里有机器人,你想让它帮忙拿一个在客厅桌子上的白色杯子给你。 如果用命令式编程的方
613 0
SQL查询引擎原理浅析
|
关系型数据库 MySQL Shell
Python3,实用技巧之:批量处理数据、本地集成命令、查看服务器日志
Python3,实用技巧之:批量处理数据、本地集成命令、查看服务器日志
186 0
|
C语言 Python
脚本引擎初步研究
由于组态软件里要嵌入脚本引擎,以前虽然在IOServer中嵌入了VBScript,但脚本引擎的概念实在是不甚明白,这几天集中突击了脚本引擎的相关知识,收获还不少。
|
JSON 前端开发 JavaScript
在前端的JavaScript脚本中,如何高效率的使用数据库中的配置信息
在前端的JavaScript脚本中,如何高效率的使用数据库中的配置信息
148 0
|
PHP 缓存 前端开发
Laravel5.5执行表迁移命令出现表为空的解决方案
今天在使用一个第三方包 laravel-admin 时,出现了这样的错误:SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '',折腾了好久,终于知道了解决方法,原来是配置文件的缓存没有清理。
1598 0