服务实例¶
boot()¶
无参数,启动服务实例
shutdown()¶
无参数,停止服务实例
afterBoot(fn)¶
fn 服务实例启动后执行的函数
绑定一个函数,在服务实例启动后执行,使用方法:app.js代码中加入。示范如下:
load("nashorn:mozilla_compat.js");
load("./config.js");
load("./bin/server.js");
//绑定启动后执行的函数
$.afterBoot(function(){
$.logger().info("服务实例启动后,将会输出这行内容");
});
$.boot();
afterShutdown(fn)¶
fn 服务实例启动后执行的函数
绑定一个函数,在服务实例停止后执行,使用方法:app.js代码中加入。示范如下:
load("nashorn:mozilla_compat.js");
load("./config.js");
load("./bin/server.js");
//绑定启动后执行的函数
$.afterShutdown(function(){
$.logger().info("服务实例停止后,将会输出这行内容");
});
$.boot();
status()¶
无参数,返回服务实例当前状态,以下三种
RUNNING
SHUTDOWN
NOT_BOOT
bind(entry)¶
entry格式和config.js中endpoints配置数组中的项格式相同,需要三个字段
path 要提供服务的http路径
servlet 提供服务的小程序文件路径
name 提供服务的对象名
该函数一般不显式使用,配合/bin/bind.js组件使用时由引擎自己使用
unbind(entry)¶
entry格式和config.js中endpoints配置数组中的项格式相同,需要一个字段
path 要停止提供服务的http路径
该函数一般不显式使用,配合/bin/bind.js组件使用时由引擎自己使用
数据访问¶
jdbc(back)¶
back 提供该参数时,视为归还JDBC Connection实例,不提供则视为获取一个JDBC Connection。
使用该函数默认使用了连接池技术,繁忙时,该函数将会阻塞等待,所以使用完毕请及时归还。
db()¶
无参数,不使用连接池创建一个JDBC Connection对象,一般不推荐使用。
sql()¶
无参数,返回一个Apache DBUtils组件的QueryRunner实例,具体使用方式可参加官方文档。
asMapList¶
非函数,默认提供一个Apache DBUtils组件的 MapListHandler实例,负责将查询出的数据转换为一个填充了HashMap的List,Map中的Key为数据库列名 值为数据库列的实际内容。
query(sql,params)¶
语法糖,支持执行select * from x where a= ? and b= ? 的SQL语句,params支持按照顺序填入,调用时将按照顺序替换SQL里的问号,其返回结果是 经过格式化的数据集合。
format(mapList)¶
mapList 为QueryRunner的查询结果集
该函数提供默认的日期或者时间类型字段的自动格式化。
redis(back)¶
back 提供该参数时,视为归还Jedis实例,不提供则视为获取一个Jedis。
使用该函数默认使用了连接池技术,繁忙时,该函数将会阻塞等待,所以使用完毕请及时归还。
mongo(db,collection)¶
db 要访问的db名称 ,字符串格式
collection 要访问的collection名称 , 字符串格式。该collection视为隶属于 db 参数值下。
返回一个MongoDatabase 或者 MongoCollection 实例,只提供db参数时返回MongoDatabase实例,两者都提供时返回MongoCollection实例
asDoc(obj)¶
obj 常规Javascript 对象。
由于MongoDB要求查询条件务必是Document类型,所以该方法会将普通Javascript对象转换成为MongoDB所支持的Document类型,以便用于查询或其他数据 访问交互需要。
neo4j(session)¶
session 提供值true 则表示获取Session 不提供或者false则返回 Driver实例
代码示例辅助说明:
public class DriverLifecycleExample implements AutoCloseable
{
private final Driver driver;
public DriverLifecycleExample( String uri, String user, String password )
{
//默认驱动 Driver实例
driver = GraphDatabase.driver( uri, AuthTokens.basic( user, password ) );
}
@Override
public void close() throws Exception
{
driver.close();
}
}
private Driver createDriver( String virtualUri, String user, String password, ServerAddress... addresses )
{
Config config = Config.builder()
.withResolver( address -> new HashSet<>( Arrays.asList( addresses ) ) )
.build();
return GraphDatabase.driver( virtualUri, AuthTokens.basic( user, password ), config );
}
private void addPerson( String name )
{
String username = "neo4j";
String password = "some password";
try ( Driver driver = createDriver( "neo4j://x.example.com", username, password, ServerAddress.of( "a.example.com", 7676 ),
ServerAddress.of( "b.example.com", 8787 ), ServerAddress.of( "c.example.com", 9898 ) ) )
{
//使用会话 Session
try ( Session session = driver.session( builder().withDefaultAccessMode( AccessMode.WRITE ).build() ) )
{
session.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) );
}
}
}
该函数获取neo4j的Driver实例或者Session实例。上文代码中演示了二者的使用方式。
HTTP-Client¶
get(url,headers,asJson)¶
url 要请求的目标url地址,字符串格式
headers 要携带的http headers,对象格式,key为header-name, value为header-value。
asJson 响应结果是否要JSON对象化处理,默认为false,请根据实际情况自行设置。
使用get方式请求一个指定的http地址,并返回响应结果,该函数的超时配置在config.js中设置。
post(url,headers,data,asJson)¶
url 要请求的目标url地址,字符串格式
headers 要携带的http headers,对象格式,key为header-name, value为header-value。
data 要提交的http-body数据,支持对象格式
asJson 响应结果是否要JSON对象化处理,默认为false,请根据实际情况自行设置。
使用post方式请求一个指定的http地址,并返回响应结果,该函数的超时配置在config.js中设置。
其他工具函数¶
empty(str)¶
str 要检查的字符串
检查一个字符串是不是长度位0,不对null值做处理。
at(index,string|array)¶
index 下标
string|array 目标字符串或者数组
返回指定下标的内容,如果第二个参数是字符串则返回字符串指定index下标的内容,如果是数组则返回指定位置的数组项。
each(object|array,fn[i,n])¶
object|array 一个Javascript对象或者数组
fn[i,n] 一个带有两个参数的函数,i表示下标,n表示当前项。
该函数为for(var i in obj)的语法糖,像Jquery $.each致敬。
servlet(name,fn[req,resp])¶
name 小程序的名字
fn[req,resp] 小程序的服务提供函数,定义两个形参,一个是request一个是response。
语法糖,等价于定义一个包含了service函数的小程序对象。
redirect(resp,url)¶
resp http响应对象
url 指定要重定向到的url地址,支持绝对路径和相对路径。
重定向函数,将请求指向另一个http-url地址
filter(name,fn[req,resp])¶
name 小程序的名字
fn[req,resp] 小程序的服务提供函数,定义两个形参,一个是request一个是response。
语法糖,等价于定义一个包含了service函数的小程序对象。
toJson(obj)¶
obj 指定要JSON格式化的对象,支持数组和对象
将传入参数格式化为JSONString。
fromJson(jsonStr)¶
jsonStr 指定要反序列化的JSON字符串,支持数组和对象
将传入参数反序列化为对象或数组。
setTimeout(fn,time)¶
fn 无参函数
time 延迟的时间,单位:毫秒
$.setTimeout(function(){
println("Hello ,i'm in 'Timeout'");
},2000);
指定一个时间,延迟执行一个函数,和浏览器中window.setTimeout等价。
setInterval(fn,time)¶
fn 无参函数
time 间隔的时间,单位:毫秒
$.setInterval(function(){
println("Hello ,i'm in 'Interval'");
},2000);
指定一个时间,以该时间为固定间隔执行一个函数,和浏览器中window.setInterval等价。
日志¶
logger(name)¶
name 日志对象的名字,不传入时默认为:default
获取一个日志对象,用于记录日志
debug(str)¶
语法糖,等价于$.logger().debug(str);
info(str)¶
语法糖,等价于$.logger().info(str);
warn(str)¶
语法糖,等价于$.logger().warn(str);
error(str)¶
语法糖,等价于$.logger().error(str);
秘钥证书¶
genkey(cfg)¶
生成秘钥证书,建议配合组件/bin/keytool.js使用。如果手动调用使用,请按照参数格式要求。cfg为对象格式,包含以下属性字段
alias 秘钥别名
keypasswd 秘钥密码
alg 加密算法
keysize 长度
expire 有效期
keystorename 秘钥库文件名
keystorepass 秘钥库密码
cnname CN 名字与姓氏
ouname OU 组织单位名称
oname O 组织名称
lname L 城市或区域名称
stname ST 州或省份名称
cname C 单位的两字母国家代码
代码生成¶
gencrud(tables,asCamel)¶
tables 表名数组,数组格式
asCamel 列名是否Camel化,当列名中有 _ 时,此参数传true将自动去掉 _ 并将其后第一个字母大写。
生成crud模板化代码,示例:
load("nashorn:mozilla_compat.js");
load("./config.js");
load("./bin/server.js");
load("./bin/crud.js");
$.gencrud(["person","city"],true);
执行完毕后,即可在/servlet目录下找到对应代码,并会产生一个endpoints.js的文件,其中包含了所有的默认配置。