当前位置:新闻中心行业动态 → 正文

Apache OpenWebBeans发布微服务Meecrowave服务器 1.0

责任编辑:editor004 作者:Michael Redlich |来源:企业网D1Net  2017-09-05 11:19:22 本文摘自:INFOQ

Meecrowave 由以下组件组成:

CoreTesting (JUnit 和 Arquillian)Monitoring (Jolokia)JTAOAuth2

核心组件定义了一系列配置和命令行界面(CLI)选项。还可以通过实现 Cli.Options 接口并使用 @CliOption 注释来定义自定义 CLI 选项,如下文所示。

Maven 和 Gradle 组件提供与核心配置和 CLI 选项对应的属性,并允许更改默认值。

入门

以下 JAX-RS 示例演示如何开始使用 Meecrowave 。

Defaults 类为示例应用程序定义了 fisrtName 和 lastName。请注意使用名为 app-default-name 的选项来扩展 CLI 以及相应的描述。

public class Defaults implements Cli.Options { @CliOption(name="app-default-name", description="The default first and last names for the app.") private String firstName="Michael"; private String lastName="Redlich"; public String getFirstName() { return firstName; } public String getLastName() { return lastName; } }

DefaultsProducer 类注入了 Meecrowave 的 Builder 类的实例,用于启动 Meecrowave 。通过 getExtension() 方法来获取 Defaults 类中的 @CliOption 注释中定义的名称和描述。

@Dependentpublic class DefaultsProducer { @Inject private Meecrowave.Builder builder; @Produces @ApplicationScoped public Defaults defaults() { return builder.getExtension(Defaults.class); } }

SimpleApplication 类定义了主应用程序路径,redlich:

@Dependent@ApplicationPath("redlich")public class SimpleApplication extends Application { }

SimpleEndpoint 类定义了端点、meecrowave、URL查询参数、firstName 和 lastName,以及一个内部类,Hello,用于为名称建模的 Java bean。

@Path("meecrowave")@ApplicationScopedpublic class SimpleEndpoint { @Inject private Defaults defaults; @GET @Produces(MediaType.APPLICATION_JSON) public Hello sayFullName(@QueryParam("firstName") final String firstName,@QueryParam("lastName") final String lastName) { return new Hello(ofNullable(firstName).orElse(defaults.getFirstName()),ofNullable(lastName).orElse(defaults.getLastName())); } public static class Hello { private String firstName; private String lastName; public Hello() { } private Hello(final String firstName,final String lastName) { setFirstName(firstName); setLastName(lastName); } public String getFirstName() { return firstName; } public void setFirstName(final String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(final String lastName) { this.lastName = lastName; } } }

编译并运行 Maven:

mvn clean package meecrowave:run

服务器运行后,完整的 URL 由主应用程序路径和端点组成,其可在浏览器中输入:

http://localhost:8080/redlich/meecrowave

注意显示 “Michael” 和 “Redlich” 的默认值。 URL 查询参数可用于更改在 firstName 和 lastName 中定义的默认值。以下是通过 URL 只更改 firstName 的示例:

http://localhost:8080/redlich/meecrowave?firstName=Rowena

下一个示例演示如何通过 URL 同时更改 firstName 和 lastName:

http://localhost:8080/redlich/meecrowave?firstName=Barry&lastName=Burd

可以在 GitHub 上找到完整的示例应用程序。

Meecrowave 也有同伴项目:

Apache DeltaSpike(配置、异常处理、高级 CDI)Apache Sirona(监控)

新的 CDI 2.0 规范的支持越来越受关注,Apache 最近发布了旨在使用新 CDI 2.0 规范的 OpenWebBeans 2.0.0。

关键字:firstName

本文摘自:INFOQ

x Apache OpenWebBeans发布微服务Meecrowave服务器 1.0 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业动态 → 正文

Apache OpenWebBeans发布微服务Meecrowave服务器 1.0

责任编辑:editor004 作者:Michael Redlich |来源:企业网D1Net  2017-09-05 11:19:22 本文摘自:INFOQ

Meecrowave 由以下组件组成:

CoreTesting (JUnit 和 Arquillian)Monitoring (Jolokia)JTAOAuth2

核心组件定义了一系列配置和命令行界面(CLI)选项。还可以通过实现 Cli.Options 接口并使用 @CliOption 注释来定义自定义 CLI 选项,如下文所示。

Maven 和 Gradle 组件提供与核心配置和 CLI 选项对应的属性,并允许更改默认值。

入门

以下 JAX-RS 示例演示如何开始使用 Meecrowave 。

Defaults 类为示例应用程序定义了 fisrtName 和 lastName。请注意使用名为 app-default-name 的选项来扩展 CLI 以及相应的描述。

public class Defaults implements Cli.Options { @CliOption(name="app-default-name", description="The default first and last names for the app.") private String firstName="Michael"; private String lastName="Redlich"; public String getFirstName() { return firstName; } public String getLastName() { return lastName; } }

DefaultsProducer 类注入了 Meecrowave 的 Builder 类的实例,用于启动 Meecrowave 。通过 getExtension() 方法来获取 Defaults 类中的 @CliOption 注释中定义的名称和描述。

@Dependentpublic class DefaultsProducer { @Inject private Meecrowave.Builder builder; @Produces @ApplicationScoped public Defaults defaults() { return builder.getExtension(Defaults.class); } }

SimpleApplication 类定义了主应用程序路径,redlich:

@Dependent@ApplicationPath("redlich")public class SimpleApplication extends Application { }

SimpleEndpoint 类定义了端点、meecrowave、URL查询参数、firstName 和 lastName,以及一个内部类,Hello,用于为名称建模的 Java bean。

@Path("meecrowave")@ApplicationScopedpublic class SimpleEndpoint { @Inject private Defaults defaults; @GET @Produces(MediaType.APPLICATION_JSON) public Hello sayFullName(@QueryParam("firstName") final String firstName,@QueryParam("lastName") final String lastName) { return new Hello(ofNullable(firstName).orElse(defaults.getFirstName()),ofNullable(lastName).orElse(defaults.getLastName())); } public static class Hello { private String firstName; private String lastName; public Hello() { } private Hello(final String firstName,final String lastName) { setFirstName(firstName); setLastName(lastName); } public String getFirstName() { return firstName; } public void setFirstName(final String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(final String lastName) { this.lastName = lastName; } } }

编译并运行 Maven:

mvn clean package meecrowave:run

服务器运行后,完整的 URL 由主应用程序路径和端点组成,其可在浏览器中输入:

http://localhost:8080/redlich/meecrowave

注意显示 “Michael” 和 “Redlich” 的默认值。 URL 查询参数可用于更改在 firstName 和 lastName 中定义的默认值。以下是通过 URL 只更改 firstName 的示例:

http://localhost:8080/redlich/meecrowave?firstName=Rowena

下一个示例演示如何通过 URL 同时更改 firstName 和 lastName:

http://localhost:8080/redlich/meecrowave?firstName=Barry&lastName=Burd

可以在 GitHub 上找到完整的示例应用程序。

Meecrowave 也有同伴项目:

Apache DeltaSpike(配置、异常处理、高级 CDI)Apache Sirona(监控)

新的 CDI 2.0 规范的支持越来越受关注,Apache 最近发布了旨在使用新 CDI 2.0 规范的 OpenWebBeans 2.0.0。

关键字:firstName

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^