以一个官方的例子,开启lagom的学习之旅。
1: git clone https://github.com/lagom/activator-lagom-java-chirper.git。
2: 下载后进入目录,运行mvn lagom:runAll。
3: 浏览器输入:localhost:9000
4: 模块:
Chirp service: 负责存储聊天,提供存储接口服务。
Friend service: 负责用户存储,管理朋友关系。
Activity Stream service: 为聊天提供流数据的支持,依赖于 Chirp与Friend 服务。
Front-End service: 提供前台用户UI。
5:
- An
apiproject: that contains a service interface through which consumers can interact with the service. - An
implproject: that contains the service implementation.
ActivityStreamService.java
/* * Copyright (C) 2016 Lightbend Inc. <http://www.lightbend.com> */ package sample.chirper.activity.api; import sample.chirper.chirp.api.Chirp; import akka.stream.javadsl.Source; import akka.NotUsed; import com.lightbend.lagom.javadsl.api.ServiceCall; import com.lightbend.lagom.javadsl.api.Descriptor; import com.lightbend.lagom.javadsl.api.Service; import static com.lightbend.lagom.javadsl.api.Service.*; public interface ActivityStreamService extends Service { ServiceCall<NotUsed, Source<Chirp, ?>> getLiveActivityStream(String userId); ServiceCall<NotUsed, Source<Chirp, ?>> getHistoricalActivityStream(String userId); @Override default Descriptor descriptor() { // @formatter:off return named("activityservice").withCalls( pathCall("/api/activity/:userId/live", this::getLiveActivityStream), pathCall("/api/activity/:userId/history", this::getHistoricalActivityStream) ).withAutoAcl(true); // @formatter:on } }