Spring系列学习之Spring Shell命令行_spring 命令行_boonya的博客-程序员秘密

技术标签: Spring/SpringBoot/SpringCloud  Shell  Spring  

英文原文:https://projects.spring.io/spring-shell/

目录

介绍

特性

快速开始


Spring Shell项目提供了一个交互式shell,允许您使用基于Spring的编程模型插入自己的自定义命令。

 

介绍

Spring Shell项目的用户可以通过依赖Spring Shell jar并添加他们自己的命令(作为spring bean上的方法)轻松构建一个功能齐全的shell(也就是命令行)应用程序。创建命令行应用程序可能是有用的,例如与项目的REST API交互,或使用本地文件内容。

特性

Spring Shell的功能包括:

  •     一个简单的,注释驱动的编程模型,用于提供自定义命令
  •     使用Spring Boot自动配置功能作为命令插件策略的基础
  •     选项卡完成,着色和脚本执行
  •     自定义命令提示符,shell历史文件名,结果和错误的处理
  •     基于域特定标准动态启用命令
  •     与bean验证API集成
  •     已经内置命令,如清晰的屏幕,华丽的帮助,退出
  •     ASCII艺术表,带格式,对齐,花式边框等。


快速开始

在项目中使用spring-shell的推荐方法是使用依赖关系管理系统 - 下面的代码片段可以复制并粘贴到您的构建中。 需要帮忙? 请参阅我们的Maven和Gradle构建入门指南。(可导航到英文页面选择对应的版本和依赖方式)

Maven

<dependencies>
    <dependency>
        <groupId>org.springframework.shell</groupId>
        <artifactId>spring-shell-starter</artifactId>
        <version>2.0.0.RELEASE</version>
    </dependency>
</dependencies>

Gradle

dependencies {
    compile 'org.springframework.shell:spring-shell-starter:2.0.0.RELEASE'
}

然后创建一个可以作为调用的简单命令

shell:>translate "hello world!" --from en_US --to fr_FR
bonjour monde!

假设您可以访问某些与Locales一起使用的翻译服务:

package foo;

@ShellComponent
public class TranslationCommands {

    private final TranslationService service;

    @Autowired
    public TranslationCommands(TranslationService service) {
      this.service = service;
    }

    @ShellMethod"Translate text from one language to another.")
    public String translate(
      @ShellOption(mandatory = true) String text,
      @ShellOption(mandatory = true, defaultValue = "en_US") Locale from,
      @ShellOption(mandatory = true) Locate to
    ) {
      // invoke service
      return service.translate(text, from, to);
    }
}

Spring Shell

Release

Documentation

2.0.1

Reference API

2.0.0

Reference API

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/boonya/article/details/85218773

智能推荐

如何用快启动pe修复win10系统引导?_winpe修复win10_jessical1020的博客-程序员秘密

如何用快启动pe修复win10系统引导?多数小伙伴在重装系统之后出现引导损坏故障,慌乱之下不知道该怎么办才好,一直盲目的在网上找了工具,最后也没能解决困扰。今天快启动小编为大家介绍用快启动pe修复win10系统引导的操作教程,正受引导损坏故障困扰的小伙伴还不赶紧get起来哦!  准备工具  1、准备个u盘,下载个快启动u盘启动盘制作工具,然后进行安装制作(u盘启动盘制作教程)。  2、

编译原理 第一章(源程序、目标程序、解释器、编译器、词法语法语义分析)_编译原理源程序_托马斯大火车的博客-程序员秘密

第一章(一)什么是编译程序1.编译程序将用高级语言书写的程序翻译成等价的低级语言程序(汇编、机器语言),这种翻译程序称为编译程序。2.源程序编译程序的输入对象为源程序3.目标程序编译程序的输出对象为目标程序4.解释器与编译器(二)词法分析1.从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(三)语法分析1.判断输入串是否构成一个语法上正确的程序,并生成语法树(四)语义分析1.审查源程序是否有语义错误,为代码生成阶段收集类型信息2.

【springboot错误记录】Resource interpreted as Stylesheet_路途…的博客-程序员秘密

报错:Resource interpreted as Script but transferred with MIME type text/html【原因分析1】:【原因分析2】:配置拦截器的时候,将静态资源文件页拦截了

QT笔记- 使用QTreeView设计项目栏(概要)_qq_43058397的博客-程序员秘密

使用QTreeView实现上述截图中左侧的Qt项目栏需要如下几个要点:设置目录QFileSystemModel * model = new QFileSystemModel;model-&gt;setRootPath(QDir::currentPath());//设置目录ui-&gt;treeView-&gt;setModel(model);ui-&gt;treeView-&gt;setRootIndex(model-&gt;index(QDir::currentPath()));//要..

希尔排序算法 java实现_Floruit_Show的博客-程序员秘密

交换法 public static void change(int[] ints){ int limit = ints.length; int step = limit/2; int temp; do { for (int i = step; i &lt; limit; i++) { //每一次都从后往前交换,致使每排组内的数据都是有序的 for

Linux(Debian)之安装Java JDK及注意事项_起一个好听的名字的博客-程序员秘密

转自:http://www.cnblogs.com/hanyinglong/p/5025635.html说明:本人是以Debian 操作系统来进行安装的,这篇文章有很大帮助,才学Linux对有些命令不太熟悉,文章中有的命令我自己没有运行成功:    例如命令:cd usr/local/   mkdir kencery   cd kencery/  执行后没有找到目录         我是这样写的:...

随便推点

strncpy_Yongqiang Cheng的博客-程序员秘密

strncpychar *strncpy(char *destination, const char *source, size_t num);1. Copy characters from string        Copies the first num characters of source to destination. If the end of the source C strin...

WPF企业内训全程实录(上)_weixin_34406086的博客-程序员秘密

一. 摘要  圣殿骑士由于工作和项目需要,所以对一些技术进行了较为深入的研究,之前在整个公司做过一些技术专场的培训,由于每次时间较短且人员较多的关系,没能讲得很透彻。一直都想以文字的形式把这些培训细节写出来,但是发现进度确实很慢,所以先来几篇宏观的讲解,希望能起到“授人与鱼也授人以渔”的效果。今天我们就来分享一下WPF内训之旅,这篇文章以WPF培训为主线,中间贯穿了一些其他技术和使用心得。其他...

mybatis整合redis_Soul717的博客-程序员秘密

mybatis整合redis步骤1.添加redis相关依赖          redis与spring的整合依赖          log4j2配置:Log4j2 + Slf4j           jackson    2.spring + redis 集成实现缓存功能(与mybatis无关)          添加两个redis的配置文件,并将redis.properties和s...

Java中的抽象类和接口-小白总结_抽象类可以含有成员变量,接口不能_7旅病娘的博客-程序员秘密

抽象类和接口前言更新,更新,更新!!!来吧,展示,希望有所帮助!!!(本文如有任何错误的言论,还请路过的大佬不吝赐教,感激不尽!!!)一、抽象类使用Java语言解决实际问题的时候,一般将父类定义为抽象类,需要使用这个父类进行继承与多态处理。回想一下继承和多态的原理,越是往上的类就越抽象。在多态机制中,并不需要将父类初始化对象,我们需要的只是子类对象,所以在Java语言中设置抽象类不可实例化对象,但是它的子类却可以。语法:public abstract class Test{ abstra

gstreamer拥有的插件_刘二毛的博客-程序员秘密

gst的插件 当然前提是你必须先安装这些插件首先是对应ffmpeg的一些插件,编解码,解复用,复用等各种容器格式的ffmpeg: ffaudioresample: FFMPEG Audio resampling elementffmpeg: ffdeinterlace: FFMPEG Deinterlace elementffmpeg: ffmux_3gp: FFMPEG

.NET MVC EF 实现后台登录——内含记住密码、登录成功提示等功能_寒冬不下雪的博客-程序员秘密

注:本文使用Visual Studio2019做案例,VS的其他版本也可以做。什么是EF?EF 全称为 Entity Framework,是一个被微软支持的为 .NET 程序服务的开源的 ORM 框架。 Entity Framework 是一个对象关系映射器(object-relational mapper (O/RM)),它能够使开发者利用 .NET 对象跟数据库打交道。开发者再也...

推荐文章

热门文章

相关标签