Spring Boot Cli 入門安裝和使用

聲明

本人也在不斷的學(xué)習(xí)和積累中,文章中有不足和誤導(dǎo)的地方還請(qǐng)見諒,可以給我留言指正。希望和大家共同進(jìn)步,共建和諧學(xué)習(xí)環(huán)境。

簡介

The Spring Boot CLI (Command Line Interface)是一個(gè)命令行工具,可以快速搭建spring原型項(xiàng)目??梢允褂肎roovy腳本,腳本比較和java語法類似,非常簡潔。

安裝

1、下載

首先到官網(wǎng) 下載壓縮包

然后解壓到指定的位置


image.png
2、配置環(huán)境變量

這里我直接放在了path中


image.png
3、驗(yàn)證

在終端輸入spring --version 來驗(yàn)證是否安裝成功


image.png

運(yùn)行Groovy腳本

我們?cè)谌我馕恢眯陆ㄒ粋€(gè)Groovy腳本helloworld.groovy 的文件,用編輯器打開,然后在helloworld.groovy 文件中編寫腳本。

@Controller
class HelloController{
    @RequestMapping("/hello")
    @ResponseBody
    String hello(){
        return "Hello World!"
    }
}

保存之后,我們?cè)诋?dāng)前位置啟動(dòng)終端,然后輸入spring run helloworld.groovy
出現(xiàn)下面的內(nèi)容,說明已經(jīng)啟動(dòng)完成了
注:第一次啟動(dòng)時(shí),下載依賴比較慢,需要等一段時(shí)間

image.png

在瀏覽器中輸入http://localhost:8080/hello 就能訪問了

image.png

或者用終端訪問


image.png
image.png

基本的Groovy腳本

Groovy和Spring與Spring Boot CLI結(jié)合在一起,可以在單個(gè)Groovy文件部署中快速編寫功能強(qiáng)大,高性能的微服務(wù)。
對(duì)多腳本應(yīng)用程序的支持通常需要額外的構(gòu)建工具,如Maven或Gradle。
下面我們將介紹 Spring Boot CLI 的一些最常見的用例。

有關(guān)所有Spring支持的Groovy注釋的列表,請(qǐng)查看官方文檔。

1、 @Grab
@Grab注釋和Groovy的Java式的進(jìn)口條款允許依賴管理和注射。
實(shí)際上,大多數(shù)注釋都抽象、簡化并自動(dòng)包含必要的import語句。這使我們可以花更多的時(shí)間來考慮架構(gòu)以及我們想要部署的服務(wù)的基礎(chǔ)邏輯。

我們來看看如何使用@Grab注釋:

package org.test
 @Grab("spring-boot-starter-actuator")
 @RestController
class ExampleRestController{
  //...
}

正如我們所看到的,spring-boot-starter-actuator是預(yù)先配置的,允許簡潔的腳本部署,無需定制的應(yīng)用程序或環(huán)境屬性,XML或其他編程配置,但必要時(shí)可以指定這些內(nèi)容。

@Grab參數(shù)的完整列表- 每個(gè)都指定要下載和導(dǎo)入的庫 - 可在此處獲得。

2、 @ Controller@ RestController@EnableWebMvc

為了進(jìn)一步加快部署,我們可以使用Spring Boot CLI提供的“抓取提示”來自動(dòng)推斷要導(dǎo)入的正確依賴項(xiàng)。我們將介紹下面一些最常見的用例。

例如,我們可以使用熟悉的@Controller和@Service注釋來快速構(gòu)建標(biāo)準(zhǔn)MVC控制器和服務(wù):

@RestController
class Example {
  
    @Autowired
    private MyService myService;
 
    @GetMapping("/")
    public String helloWorld() {
        return myService.sayWorld();
    }
}
 
@Service
class MyService {
    public String sayWorld() {
        return "World!";
    }
}

Spring Boot CLI支持Spring Boot的所有默認(rèn)配置。因此,我們的Groovy應(yīng)用程序可以自動(dòng)從其通常的默認(rèn)位置訪問靜態(tài)資源。

3、 @ EnableWebSecurity
要將 Spring Boot Security 選項(xiàng)添加到我們的應(yīng)用程序,我們可以使用@EnableWebSecurity注解,然后由 Spring Boot CLI 自動(dòng)下載。

下面,我們將使用spring-boot-starter-security依賴項(xiàng)來抽象此過程的一部分,該依賴項(xiàng)利用了引擎下的@EnableWebSecurity注釋:

package org.test
 
@Grab("spring-boot-starter-security")
 
@RestController
class SampleController {
 
    @RequestMapping("/")
    public def example() {
        [message: "Hello World!"]
    }
}

有關(guān)如何保護(hù)資源和處理安全性的更多詳細(xì)信息,請(qǐng)查看官方文檔。

4、@Test
要設(shè)置一個(gè)簡單的JUnit測(cè)試,我們可以添加@Grab(‘junit’)或@Test注解:

package org.test
 
@Grab('junit')
class Test {
    //...
}

這將允許我們輕松地執(zhí)行JUnit測(cè)試。

5、 DataSourceJdbcTemplate
可以指定持久數(shù)據(jù)選項(xiàng),包括DataSource或JdbcTemplate,而無需顯式使用@Grab注釋:

package org.test
 
@Grab('h2')
@Configuration
@EnableWebMvc
@ComponentScan('org.test')
class DataConfig {
 
    @Bean
    DataSource dataSource() {
        return new EmbeddedDatabaseBuilder()
          .setType(EmbeddedDatabaseType.H2).build();
    }
 
}

參考

Spring Boot四大神器之CLI

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容