以下内容均选自 Micronaut 入门实战:基于 JVM 的微服务框架 。
Micronaut是什么?
Micronaut 是一个现代化的基于 JVM 的全栈框架,用于构建模块化且易于测试的微服务或无服务程序。
同时,Micronaut 使用 Netty,并且对响应式编程提供一流的支持。对于 JVM 领域的全栈框架来说,Micronaut 是一个非常有前途的新成员。
Micronaut 旨在提供构建微服务所需要的一切工具,包含:
- 依赖注入(DI)和控制翻转(IoC)。
- 合理的默认值和自动配置。
- 配置及配置共享。
- 服务发现。
- HTTP 路由。
- 具有负载均衡的 HTTP 客户端。
同时,Micronaut 也致力于避免像 Spring、Spring Boot 和 Grails 中的弊端,通过:
- 快速启动。
- 减少内存占用。
- 极少的反射使用。
- 极少的代理使用。
- 简单的单元测试。
在以前,像 Spring 和 Grails 这些框架并不是被设计来在 server-less、安卓 Apps 或低内存占用的场景中运行。相反,Micronaut 则是为此而生。
Micronaut 通过使用 Java 的 annotation processor 来实现以上功能,annotation processor 可以在任何支持其的 JVM 上使用,包括在使用 Netty 构建的 HTTP Server 和 Client 上。
为了提供和 Spring 以及 Grails 相似的编程模型,这些 annotation processor 预编译了必要的元数据(Metadata)来进行依赖注入、定义 AOP 代理以及配置你的应用程序,使其能够在微服务环境中运行。
创建第一个 Micronaut 程序
接下来将要创建我们的第一个 Micronaut 程序,内容包括提供一个 /hello API 接口以及相应的测试类。
然后,使用 GraalVM 提供的 native image 将程序构建为一个可运行的二进制文件。
▲创建程序
Micronaut 提供了一个 CLI(Command Line Interface,命令行接口)让我们可以方便快速地创建一个 Micronaut 程序。这个 CLI 包含了用于生成指定类型项目的命令,可以选择项目的构建工具、测试框架甚至是程序使用的语言。同时,它也提供了生成代码(如:Controller、Client Interface 和 Serverless Functions)的命令。详情可参考官网文档 Micronaut CLI。
下面我们来使用 Micronaut CLI 来创建程序,在实验楼 WebIDE 终端中执行以下命令:
mn create-app example.micronaut.complete
- mn 用于调用 Micronaut 的 CLI。
- create-app 即表明要创建一个 Micronaut 程序。默认情况下,create-app 会创建一个 Java Micronaut 程序,并使用 Gradle 构建系统。但你也可以使用其他的构建工具(如:Maven)和语言(如:Groovy 和 Kotlin)。
- example.micronaut.complete 作为参数,指定了程序的默认包名和程序名,最后一个 . 号前面的内容将作为包名(此处即:example.micronaut),后面的内容将作为文件夹名(此处即:complete)。 </