Micronaut中SpringBoot的示例分析(Micronaut,springboot,开发技术)

时间:2024-05-02 07:26:23 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Micronaut%E4%B8%ADSpringBoot%E7%9A%84%E7%A4%BA%E4%BE%8B%E5%88%86%E6%9E%90

Micronaut 是一个框架,它以更快的启动时间而得名,通常是使用 AWS Lambda 的解决方案的首选。它使用提前 (AOT) 编译来确定应用程序需要什么。这样做的结果是应用程序具有更小的内存占用、快速的启动时间和无反射。

该框架提供了依赖注入、控制反转(IOC)和面向切面编程(AOP),这与 Spring 提供的类似。使用 Micronaut,您可以创建命令行应用程序、HTTP 服务器应用程序,甚至是事件驱动的应用程序。

要创建项目,您可以直接转到Micronaut 的启动来创建您的项目。这类似于 spring 如何提供一种使用https://start.spring.io创建项目的方法。

您也可以使用 SDKMan 安装命令行实用程序。命令行实用程序与启动站点的作用相同。有关此的更多详细信息,请参见此处。

在创建项目时,添加Hibernate-JPA功能,因为我们将创建一个具有 CRUD 功能的项目。生成项目后,我们将查看作为 Spring 开发人员通常会做的各种事情。

通常情况下,在春天,你会使用创建一个bean@bean,@Restcontroller,@service,@repository,等。Micronaut,我们有一些注释,则类似的。让我们来看看它们。

@controller — 为您的休息端点定义您的控制器类。

@repository — 定义您的存储库 bean。

@singleton — 定义一个具有单例作用域的 bean。

@prototype — 定义一个具有原型作用域的 bean

@requestscope — 定义具有请求范围的 bean。

没有@serviceor@component注释,但您可以使用上述注释来创建服务或组件。

除此之外,我们还@infrastructure必须定义一个对应用程序运行至关重要的 bean,它不应被覆盖,并定义@threadlocal每个线程的 bean 范围的注解。

为了注入特定的 bean,Micronaut 支持基于构造函数、基于 setter、基于名称的相同注入机制,这类似于 spring 提供的。在 的情况下@autowire,您现在将使用@inject注释。

您还可以拥有 bean 生命周期方法、条件 bean、bean 限定符等,它们类似于 spring 提供的那些。您可以随时在此处的Micronaut 文档中阅读有关它的更多信息。

现在,我正在创建一个与 MySQL 通信的 CRUD 应用程序。我需要的来自 Micronaut 的最小依赖是:

除此之外,我还必须添加mysql-connector-java驱动程序才能与 MySQL 通信。

要创建实体,您可以使用通常的javax.persistence注释来创建实体、定义 id、列等。

您的数据源和休眠配置也几乎保持不变:

为了查询您的数据库,我们从 Micronaut 获取您通过扩展 CRUDRepository 或 JPARepository 等接口创建的接口的实现。我们还使用@query注释提供 JPA 查询支持。这是带有示例查询方法的 JPA 存储库的代码。

休息控制器可以通过创建@controller注释,并提供您的GET,PUT,POST使用映射@get,@put,@post注释分别。所有这些注释都来自micronaut-http-client依赖项。

通过上述配置,应用程序在近2 秒内启动。

现在,这里有一个问题。

当应用程序启动时,bean 还没有连接好,这会延迟发生。当应用程序接收到第一个请求时,bean 连接发生,因此第一个被服务的请求会有一点延迟。随后的请求非常快。

现在为了真正提升启动性能,我们可以创建一个 Native 镜像。使用本机映像,您可以获得大约 90 毫秒的启动时间。

是的,具有 JPA CRUD 功能的90 毫秒。

本文:Micronaut中SpringBoot的示例分析的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:vuex在vue3中怎么使用下一篇:

4 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18