Finatra 框架入门指南

Finatra 框架入门指南

finatraFast, testable, Scala services built on TwitterServer and Finagle项目地址:https://gitcode.com/gh_mirrors/fi/finatra

1. 项目目录结构及介绍

Finatra 是一个基于 TwitterServerFinagle 构建的轻量级 Scala 服务框架。以下是 finatra 项目的基本目录结构:

.
├── BUILD.bazel             // Bazel 构建文件
├── CHANGELOG.rst           // 更新日志
├── CODE_OF_CONDUCT.md      // 社区行为准则
├── CONFIG.ini              // 示例配置文件
├── CONTRIBUTING.md         // 贡献指南
├── LICENSE                 // 许可证文件
├── PROJECT.yml             // SBT 项目配置
├── README.md               // 项目读我文件
├── build.sbt               // SBT 构建脚本
├── finatra_logo.png        // 项目 Logo
├── finatra_logo_text.png   // 项目 Logo 文字版
└── pushsite.bash           // 发布网站脚本
  • BUILD.bazel:Bazel构建系统的配置文件,用于编译和测试项目。
  • CHANGELOG.rst:记录项目版本更新的内容。
  • CODE_OF_CONDUCT.md:定义社区参与规则,保持项目环境友好和谐。
  • CONFIG.ini:示例配置文件,提供配置服务的参考。
  • CONTRIBUTING.md:为开发者提供了如何贡献代码和报告问题的指导。
  • LICENSE:Apache 2.0 许可证,说明了项目可以被使用的条件。
  • PROJECT.yml:SBT 项目的元数据,用于管理依赖和构建设置。
  • README.md:项目介绍和基本使用指南。
  • build.sbt:Scala Build Tool (SBT) 的构建配置文件,用于构建和打包应用。
  • *.png:项目图标,用于识别品牌。
  • pushsite.bash:用于发布项目文档到 GitHub Pages 的脚本。

2. 项目的启动文件介绍

Finatra 应用的核心是 TwitterServer 组件,通常在项目中会有个主类继承自 com.twitter.server.TwitterServer 并实现服务器逻辑。例如,名为 MyServer.scala 的启动文件可能如下所示:

import com.twitter.finatra.http.HttpServer
import com.twitter.server.TwitterServer

class MyServer extends TwitterServer with HttpServer {
  override def defaultHttpPort = 8888 // 设置默认 HTTP 端口

  /* 在这里注册控制器和服务 */
  def this(config: com.twitter.app.AppConfig) = {
    this()
    bootstrap()
    println(s"Server started on port ${defaultHttpPort}")
  }

  // 注册一个简单的 HTTP 控制器
  private[server] lazy val helloController = new HelloController

  // 将控制器注册到服务器
  http.register("/hello", handleRequest = helloController.handle)
}

在这个例子中,MyServer 启动了一个监听 8888 端口的 HTTP 服务器,并且包含了 HelloController 来处理 /hello 请求。

3. 项目的配置文件介绍

Finatra 支持多种配置方式,包括 application.conf 或者单独的 .ini 文件。这些文件通常存放于项目资源目录下(src/main/resources)。下面是一个简单的 application.conf 示例:

finatra {
  http {
    host = "localhost"
    port = 8888
    maxRequestSizeInBytes = 10MB
  }
}

myApplicationSetting {
  key1 = value1
  key2 = value2
}

这个配置文件定义了服务器的主机名、端口以及最大请求大小,同时也定义了一组自定义的应用设置。在你的应用中,可以通过 com.twitter.util.Config 类来访问这些配置值。

要加载配置,确保在你的服务器初始化时调用了 loadServerFlags() 方法。例如,在 MyServer 类的 main 函数或构造函数中添加如下代码:

flags.loadServerFlags(getClass())

这样,Finatra 会自动解析并应用配置文件中的参数。

通过上述的目录结构、启动文件和配置文件介绍,你应该对 Finatra 有了初步的理解。接下来,你可以根据项目需求创建服务、定义路由和处理请求,进一步探索这个框架的更多功能。

finatraFast, testable, Scala services built on TwitterServer and Finagle项目地址:https://gitcode.com/gh_mirrors/fi/finatra

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶真蔷Scott

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值