icday / lark-core

一个可扩展的应用内嵌Telnet控制台

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lark

一个可扩展的应用内嵌Telnet控制台。

使用lark,你可以attach一个运行中的Java应用,执行一些预定义的命令或者一个任意的代码片段(Groovy代码)。

Getting Started

Embed it

支持提供多种应用类型的接入。

spring-boot

如果是一个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应用

对于一个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启动控制台的开启关闭。

Use it

现在可以使用Telnet连接控制台telnet 127.0.0.1 8989。在控制台执行命令。

命令(Command)

lark-core中默认提供了一些内置的命令。 借助Java的SPI机制,你也可以定制自己的命令(实现com.daiyc.lark.core.command.Command接口)。

例如lark-dubbo重新实现了Dubboinvokels等命令。

help命令

help Command

groovy命令

groovy命令打开一个groovy的REPL解释器。 REPL中可以引用应用中的静态方法和静态数据,也可以通过Java SPI的方式扩展,向执行上下文中添加变量。

lark-spring-boot-starter中向执行上下文注入了一个ctx变量指向Spring容器的ApplicationContext

添加上下文变量

  1. 实现GroovyContextVariable接口。
  2. 把实现类的全限定名填到到META-INF/services/com.daiyc.lark.core.groovy.GroovyContextVariable文件中。

运行效果

扩展

About

一个可扩展的应用内嵌Telnet控制台

License:MIT License


Languages

Language:Java 99.8%Language:Shell 0.2%