SpringBoot的竞争对手——Micronaut入门教程
1.Micronaut是什么?Micronaut是一个现代化的、基于JVM的、全栈的微服务框架,旨在构建模块化、易于测试的微服务应用程序。Micronaut是由Grails框架的创建者开发的,并从多年来的使用Spring、SpringBoot和Grails经验教训中吸取了灵感。构建出了一套从Monolith到微服务的现代化的应用程序。Micronaut旨在提供构建功能齐全的微服务应用程序所需...
1.Micronaut是什么?
Micronaut是一个现代化的、基于JVM的、全栈的微服务框架,旨在构建模块化、易于测试的微服务应用程序。
Micronaut是由Grails框架的创建者开发的,并从多年来的使用Spring、SpringBoot和Grails经验教训中吸取了灵感。构建出了一套从Monolith到微服务的现代化的应用程序。
Micronaut旨在提供构建功能齐全的微服务应用程序所需的所有工具,包括:
-
依赖注入和控制反转(IoC)
-
合理的默认值和自动配置
-
配置和配置共享
-
服务发现
-
HTTP路由
-
具有客户端负载均衡的http客户端
同时,Micronaut旨在通过提供以下功能来避免Spring、SpringBoot和Grails等框架的缺点:
-
提高启动时间
-
减少内存占用
-
最少使用反射
-
最少使用代理
-
简化单元测试
从历史上看,Spring和Grails等框架并非设计用于不依赖应用服务器的应用程序,Android 应用程序、内存占用少的微服务等场景。 相比之下,Micronaut适用于所有这些场景。
这个目标是通过使用Java的注解处理器来实现的,这些处理器可以在支持它们的任何JVM语言上使用,也可以在Netty上构建HTTP Server和Client。 为了向Spring和Grails提供类似的编程模型,这些注解处理器预编译必要的元数据,以便执行DI,定义AOP代理并将应用程序配置为在微服务环境中运行。
Micronaut中的许多API都受到Spring和Grails的启发。 这是设计有助于提高开发人员的速度,帮助开发者容易的转移到Micronaut的开发上来。
2.Micronaut官网
学习任何技术,官网最为重要。
- 官网的地址:https://micronaut.io/
- github地址:https://github.com/micronaut-projects/
3.Micronaut快速入门
以下部分将引导您快速了解如何使用Micronaut开发一个简单的Hello World应用程序。
在开发之前,大家需要准备开发环境。要求安装Java 8 或更高的jdk版本建议使用适当的开发IDE,如 IntelliJ IDEA。
要想快速入门,还建议您安装Micronaut CLI。
Micronaut CLI的安装提供了linux、macos、windows的安装方式,这里我们以windows为例。
3.1在Windows上通过二进制安装
从Micronaut网站下载最新的二进制文件。
这里wos

将二进制文件解压缩到适当的位置(例如:E:\tools\micronaut-1.2.1)
创建一个环境变量MICRONAUT_HOME,它指向安装目录,即 E:\tools\micronaut-1.2.1

更新PATH环境变量,追加%MICRONAUT_HOME%\bin。

现在我们可以从命令提示符运行MicronautCLI,如下所示
3.2 创建服务端应用
我们可以使用上面安装的MicronautCLI快速创建一个新的服务端应用。
使用CLI,可以在Groovy,Java或Kotlin中创建新的Micronaut应用程序(默认为Java)。
以下命令使用Gradle构建在Java中创建一个新的“Hello World”服务器应用程序:
mn create-app hello-world
如果您希望创建基于Maven的构建,则可以提供--build maven
我们还是以maven为例
创建命令如下
mn create-app hello-world --build maven
这样,Hello World的示例工程就创建创建成功
mn> mn create-app hello-world --build maven
| Generating Java project...
| Application created at D:\micronaut\hello-world
| Initializing application. Please wait...
mn>
并且我们将其导入到idea中,目录结构如下所示:
我是使用idea 是直接运行Application的main方法,
默认情况下,Micronaut HTTP服务器配置为在端口8080上运行。见本节在特定端口上运行服务器在用户指南中获得更多选项。
为了创建一个服务,来返回“Hello World”,首先需要一个控制器。 以下是控制器的示例:
import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
@Controller("/hello")
public class HelloController {
@Get(produces = MediaType.TEXT_PLAIN)
public String index() {
return "Hello World";
}
}
- 该类被定义为一个控制器,其
@Controller注解映射到路径/hello。 @Get注解用于将index()方法映射到使用HTTP GET请求- 返回
"Hello World"
这时候,我是使用idea 是直接运行Application的main方法,启动成功。
我们是curl发送 http://localhost:8080/hello
返回了Hello World

3.3 创建一个客户端
如前所述,Micronaut包括HTTP服务器和HTTP客户端。 (https://docs.micronaut.io/latest/guide/index.html#lowLevelHttpClient),我们可以使用开箱即用的[低级HTTP客户端]来测试3.2中创建的HelloController。
import io.micronaut.context.annotation.Property;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.client.HttpClient;
import io.micronaut.http.client.annotation.Client;
import io.micronaut.runtime.server.EmbeddedServer;
import io.micronaut.test.annotation.MicronautTest;
import org.junit.jupiter.api.Test;
import javax.inject.Inject;
import static org.junit.jupiter.api.Assertions.assertEquals;
@MicronautTest
class HelloControllerSpec {
@Inject
EmbeddedServer server;
@Inject
@Client("/")
HttpClient client;
@Test
void testHelloWorldResponse() {
String response = client.toBlocking()
.retrieve(HttpRequest.GET("/hello"));
assertEquals("Hello World", response); //)
}
}
到这里一个简单的Micronaut的Hello World程序就运行起来了。
代码已经上传Github
更多推荐



所有评论(0)