一个可扩展的应用内嵌Telnet控制台。
使用lark,你可以attach一个运行中的Java应用,执行一些预定义的命令或者一个任意的代码片段(Groovy代码)。
支持提供多种应用类型的接入。
如果是一个spring boot应用,可以直接使用lark-spring-boot-starter:
<dependency>
<groupId>com.daiyc.lark</groupId>
<artifactId>lark-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
引入lark-spring-boot-starter后,默认是开启lark服务的,可以通过lark.enable=false
配置关闭。
可用的配置项包括:
lark.server.host
默认127.0.0.1
lark.server.port
默认8989
lark.console.prompt
默认为:lark >
对于一个spring应用,可以使用com.daiyc.lark:lark-spring:
<dependency>
<groupId>com.daiyc.lark</groupId>
<artifactId>lark-spring</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
然后将LarkServerBean
注册到容器中,完成。
其他情况可以直接使用com.daiyc.lark:lark-core
:
<dependency>
<groupId>com.daiyc.lark</groupId>
<artifactId>lark-core</artifactId>
<version>0.1.3-RELEASE</version>
</dependency>
使用TelnetServer
启动控制台的开启关闭。
现在可以使用Telnet连接控制台telnet 127.0.0.1 8989
。在控制台执行命令。
lark-core
中默认提供了一些内置的命令。
借助Java的SPI机制,你也可以定制自己的命令(实现com.daiyc.lark.core.command.Command
接口)。
例如lark-dubbo重新实现了Dubbo的invoke
、ls
等命令。
help Command
groovy
命令打开一个groovy的REPL解释器。
REPL中可以引用应用中的静态方法和静态数据,也可以通过Java SPI的方式扩展,向执行上下文中添加变量。
lark-spring-boot-starter中向执行上下文注入了一个ctx
变量指向Spring容器的ApplicationContext
。
- 实现
GroovyContextVariable
接口。 - 把实现类的全限定名填到到
META-INF/services/com.daiyc.lark.core.groovy.GroovyContextVariable
文件中。