1. 概述
Bootique 是一個非常輕量級的開源 無容器 JVM 框架,旨在構建下一代可擴展的微服務。 它建立在嵌入式 Jetty 服務器之上,並完全支持 REST 處理程序,以及 jax-rs。
在本文中,我們將展示如何使用 Bootique 構建一個簡單的 Web 應用程序。
2. Maven 依賴項
讓我們開始使用 Bootique,通過將以下依賴項添加到 pom.xml中:
io.bootique.jersey
bootique-jersey
compile
io.bootique
bootique-test
test
但是,Bootique還需要聲明幾個 BOM (“Bill of Material”)導入。因此,以下 <dependencyManagement>部分需要添加到 pom.xml中:
io.bootique.bom
bootique-bom
0.23
pom
import
Bootique 的最新版本可在 中央 Maven 倉庫 中找到。
要構建一個可運行的 jar 包,Bootique依賴於 maven-shade-plugin。因此,我們也需要添加以下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
</plugin>
</plugins>
</build>
3. 啓動應用程序
啓動 Bootique應用程序最簡單的方法是,從主方法中調用 Bootique的 exec()方法:
public class App {
public static void main(String[] args) {
Bootique.app(args)
.autoLoadModules()
.exec();
}
}
但是,這不會啓動嵌入式服務器。
NAME
com.baeldung.bootique.App
OPTIONS
-c yaml_location, --config=yaml_location
指定 YAML 配置位置,可以是文件路徑或 URL。
-h, --help
顯示此消息。
-H, --help-config
顯示有關應用程序模塊及其配置選項的信息。
-s, --server
啓動 Jetty 服務器。
這些只是預打包在 Bootique中的可用程序參數。
名稱具有自我解釋性;因此,要啓動服務器,我們需要傳遞 –s或–server參數,服務器將運行在 默認端口 8080。
4. 模塊
Bootique應用程序使用“模塊”集合。在Bootique的術語中,“模塊是包含一些代碼的Java庫”,這意味着它將每個服務都視為一個模塊。它使用Google Guice進行依賴注入。要了解其工作原理,我們創建一個接口:
public interface HelloService {
boolean save();
}
現在,我們需要創建一個實現:
public class HelloServiceImpl implements HelloService {
@Override
public boolean save() {
return true;
}
}
有兩種加載模塊的方式。第一種是使用Guice的Module接口,另一種是使用Bootique的BQModuleProvider,也稱為“自動加載”。
4.1. Guice 模塊
在這裏,我們可以使用Guice的Module接口來綁定實例:public class ModuleBinder implements Module {
@Override
public void configure(Binder binder) {
binder
.bind(HelloService.class)
.to(HelloServiceImpl.class);
}
}
定義模塊後,我們需要將此自定義模塊映射到Bootique實例:
Bootique
.app(args)
.module(module)
.module(ModuleBinder.class)
.autoLoadModules()
.exec();
4.2. BQModuleProvider (自動加載)
在這裏,我們只需要定義之前創建的模塊綁定器,使用BQModuleProvider:public class ModuleProvider implements BQModuleProvider {
@Override
public Module module() {
return new ModuleBinder();
}
}
這種技術的優勢在於,我們不需要將任何模塊信息映射到Bootique實例。
我們只需要創建一個文件在/resources/META-INF/services/io.bootique.BQModuleProvider並寫入ModuleProvider的完整名稱,包括包名,Bootique會負責其餘工作:
com.baeldung.bootique.module.ModuleProvider
現在,我們可以使用@Inject註解來在運行時使用服務實例:
@Inject
HelloService helloService;
需要注意的是,由於我們正在使用Bootique自身的DI機制,我們不需要使用Guice @ImplementedBy註解來綁定服務實例。
5. REST 端點
使用 JAX-RS API 創建 REST 端點非常簡單:@Path("/")
public class IndexController {
@GET
public String index() {
return "Hello, baeldung!";
}
@POST
public String save() {
return "Data Saved!";
}
}
為了將端點映射到 Bootique 的自身 Jersey 實例,我們需要定義一個 JerseyModule:
Module module = binder -> JerseyModule
.extend(binder)
.addResource(IndexController.class);
6. 配置
我們可以提供基於YAML的屬性文件中的內置或自定義配置信息。
例如,如果我們想在自定義端口上啓動應用程序並添加默認URI上下文“hello”,可以使用以下YAML配置:
jetty:
context: /hello
connector:
port: 10001
現在,在啓動應用程序時,我們需要在config參數中提供該文件的位置:
--config=/home/baeldung/bootique/config.yml
7. 日誌記錄
出 коробке Bootique 附帶了 bootique-logback 模塊。要使用此模塊,我們需要在 pom.xml 中添加以下依賴項:
<dependency>
<groupId>io.bootique.logback</groupId>
<artifactId>bootique-logback</artifactId>
</dependency>
此模塊包含 BootLogger 接口,我們可以對其進行覆蓋以實現自定義日誌記錄:
Bootique.app(args)
.module(module)
.module(ModuleBinder.class)
.bootLogger( new BootLogger() {
@Override
public void trace( Supplier<String> args ) {
// ...
}
@Override
public void stdout( String args ) {
// ...
}
@Override
public void stderr( String args, Throwable thw ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
驂
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String args ) {
// ...
}
@Override
public void stderr( String) {
// ...
}
@Override
public void stderr(String args) {
// ...
}
}
}
This code defines a class named `MyClass` that has a method called `stderr` which takes a string argument `args`. This method does nothing but print the argument to the console. This is a placeholder for a real implementation that would handle standard error output. The `sbParams` parameter is unused.
This is a very basic example, but it demonstrates the structure of a method that could be used to redirect standard error output to a file or another destination. A real implementation would likely involve using system calls to redirect the output stream.
8. 測試
為了測試,Bootique 包含 bootique-test 模塊。 有兩種方式可以測試一個 Bootique 應用程序。
第一種方法是 ‘foreground’ 方法,它使所有測試用例在主測試線程上運行。
另一種方法是 ‘background’ 方法,它使測試用例在隔離的線程池中運行。
‘foreground’ 環境可以使用 BQTestFactory 初始化:
@Rule
public BQTestFactory bqTestFactory = new BQTestFactory();
‘background’ 環境可以使用 BQDaemonTestFactory 初始化:
@Rule
public BQDaemonTestFactory bqDaemonTestFactory = new BQDaemonTestFactory();
一旦環境工廠準備就緒,我們就可以編寫簡單的測試用例來測試服務:
@Test
public void givenService_expectBoolen() {
BQRuntime runtime = bqTestFactory
.app("--server").autoLoadModules()
.createRuntime();
HelloService service = runtime.getInstance( HelloService.class );
assertEquals( true, service.save() );
}
9. 結論
在本文中,我們展示瞭如何使用 Bootique 的核心模塊構建應用程序。 還有其他 Bootique 模塊可用,例如 bootique-jooq,bootique-kotlin,bootique-job 等。 可用模塊的完整列表可以在 這裏 找到。