有些人非常清楚地听到自己内心的声音。Andtheylivebywhattheyhear.这样的人变得疯狂,或者他们成为传奇......有些人可以清楚地听到自己内心的声音并付诸行动。这些人要么成为疯子,要么成为传奇。——基本概述一个现代的、基于JVM的全栈框架,用于构建模块化、易于测试的微服务和无服务器应用程序。——by[https://micronaut.io/]作为程序员,在Micronaut工作在服务[MicroService]乱七八糟的世界里,听一听拥抱CloudNative[CloudNative]踏上[Serverless]的论文.或许他们会经受不住诱惑,会自主搜索相关关键词来探索这些陌生的新词。但实际上,在被现实熏陶之后,我们玩的还是最原始的形式。进入企业后,大多会不由自主地发现,在Spring生态的影响下,现在大部分程序员都活跃在这个框架中。如果跳出这个框架,我们是否还能安于当下的工作,恐怕要打一个大大的问号了?一次偶然的机会,我认识了Micronaut。因此,对Micronaut的探索开始了……Micronaut是一个现代的、基于JVM的全堆栈Java框架,旨在构建模块化、易于测试的JVM应用程序,支持Java、Kotlin和Groovy。基于JVM一个现代的全堆栈Java框架,旨在通过支持Java、Kotlin和Groovy语言来构建模块化、易于测试的微服务应用程序以及无服务器应用程序。Micronaut由Grails框架的创建者开发,从多年来使用Spring、SpringBoot和Grails构建从单体到微服务的实际应用程序的经验教训中汲取灵感。在使用Spring、SpringBoot和Grails构建从单体到微服务的实际应用程序方面的经验教训。Micronaut旨在提供构建JVM应用程序所需的所有工具,包括:依赖注入和控制反转(IoC)面向方面编程(AOP)合理的默认值和自动配置Micronaut旨在提供构建JVM应用程序所需的所有工具,包括:依赖注入和控制反转(IoC)面向方面的编程(AOP)合理的默认值和自动配置使用Micronaut,您可以构建消息驱动的应用程序、命令行应用程序、HTTP服务器等,同时对于微服务,尤其是Micronaut还提供:分布式ConfigurationServiceDiscoveryHTTPRoutingClient-SideLoadBalancing使用Micronaut,你可以构建消息驱动的应用程序、命令行应用程序、HTTP服务器等,并且针对微服务,Micronaut特别提供以下功能:分布式配置服务DiscoveryHTTPRoutingClient-SideLoadBalancing同时,Micronaut旨在通过提供以下功能来避免Spring、SpringBoot和Grails等框架的缺点:快速启动时间减少内存占用最少使用反射最少使用代理没有运行时字节码生成简单的单元测试Spring、SpringBoot和Grails等框架的缺点:快速启动时间低内存占用最小粒度使用反射最小粒度使用代理没有运行时字节码生成简单的单元测试从历史上看,Spring和Grails等框架并非设计用于在无服务器功能、Android应用程序或低内存占用微服务等场景中运行。相比之下,Micronaut旨在适用于所有这些场景。这个目标是通过使用Java的注解处理器来实现的,它可以在支持它们的任何JVM语言上使用,以及在Netty上构建的HTTP服务器和客户端。为了提供与Spring和Grails类似的编程模型,这些注解处理器预编译必要的元数据以执行DI,定义AOP代理并将您的应用程序配置为在低内存环境中运行。Micronaut中的许多API深受Spring和Grails的启发。设计,并帮助开发人员快速跟上进度。综上所述,Micronaut设计的初衷是针对无服务、低内存占用的微服务等场景。通过使用Java(可以在任何支持它们的JVM语言中使用)和构建在Netty之上的HTTPServer和Client来实现这个目标。提供类似于Spring和Grails的编程模型,利用注释处理器预编译必要的元数据以执行DI、定义AOP代理并配置您的应用程序以在低内存环境中运行。基本配置1.MicronautSDK安装该项目为Micronaut实现了一个项目生成器,既是命令行(CLI)应用程序又是API,可以作为HTTP服务器运行,部署到Servlet容器或在Serverless平台上执行(谷歌CloudRun、GoogleCloudFunction、AWSLambda或AzureFunction)。目前Micronaut的最新版本是2.3.4。Micronaut创建项目实际上提供了MicronautCommandLine(CLI)命令行和MicronautAPI接口两种方式,应用可以部署在Servlet容器【Web容器】和ServerlessPlatform【无服务框架】平台上。SDK安装方法如下:InstallwithSDKmanInstallwithHomebrewInstallwithMacPortsInstallwithChocolateyInstallthroughBinaryonWindowsBuild&InstallfromSource在Unix/Linux环境下使用SDKman安装:[1].sdkupdateupdatesdkupdate[1].sdkinstallmicronautMac环境下安装SDKsdkinstallmicronaut使用Homebrew和MacPorts安装:[1].MacPorts安装:sudoportinstallmicronaut[2].Homebrew安装:brewinstall--caskmicronaut-projects/tap/micronautMacPorts的思路为了尽量减少已有库对系统依赖的影响,所以需要下载很多基础库,然后编译安装到系统中。这样做最大的问题是下载和编译需要很长时间。最大的好处是不会破坏系统原有的软件包。【??注意事项】:1、MacOSX系统上有很多优秀的包管理软件,可以将Linux上常用的命令工具和依赖安装到系统中。主要有三种主流的包管理软件,Fink、Macports、Homebrew。2.MacPorts依赖于BSD的包管理工具(port)。它的工作方式是从仓库下载软件包及其依赖库,然后在本地编译安装。尽量减少对系统已有库的依赖,所以需要下载很多基础库,然后编译安装到系统中。这样做最大的问题是下载和编译需要很长时间。最大的好处是不会破坏系统原有的软件包。3.Homebrew的工作方式与MacPorts类似。它还从仓库中下载软件包及其依赖库,然后在本地编译安装。Homebrew的思路是尽量使用系统中已有的库,软件包安装在/usr/local目录下。最大的优点是下载编译时间比MacPorts短,安装简单,不需要root用户权限安装。3.Fink是一个希望将越来越多的Unix软件带到MacOSX系统的项目。它通过移植软件源代码,然后将其打包成二进制可执行文件在MacOSX系统上进行分发。Fink依赖于Debian的包管理工具(dpkg/dselect/apt-get),因此它将包打包成.deb格式。这样做最大的好处是安装软件是预编译好的,不需要在本地编译。Fink最大的问题是软件包的更新迭代比较慢,所以如果想使用最新版本的软件包,需要等待Fink社区更新。Windows环境下,使用Chocolatey和Binary二进制文件安装:[1].Chocolatey安装:chocoinstallmicronaut[2].Binary二进制安装:设置环境变量[%MICRONAUT_HOME%]%MICRONAUT_HOME%\bin另外,可以另请下载安装源码:[1]。使用Git克隆源代码:gitclonehttps://github.com/micronaut-projects/micronaut-starter.git[2]。使用gradlew构建:./gradlewmicronaut-cli:assembleDist[3]。配置环境安装:mkdir~/.micronautunzipstarter-cli/build/dist/micronaut-cli-VERSION.zip-d~/.micronaut[4]。配置环境变量:exportMICRONAUT_HOME=~/path/to/unzipped/cliexportPATH="$PATH:$MICRONAUT_HOME/bin"[4]。配置环境变量生效:source~/.bash_profile[??Notes]:[1]。以上源码安装方式支持Linux、Unix和Macos[2]]。Windows环境可根据相应配置2.MicronautSDK使用通用创建代码使用mn命令:mncreate-[COMMAND]--build=BUILD-TOOL[1].Mainfunctionmn:MicronautCLI提供的主要函数名称create-appNAMEcreate-cli-appNAMEcreate-function-appNAMEcreate-grpc-appNAMEcreate-messaging-appNAME[2].--build:构建工具支持:gradle、gradle_kotlin、maven。例如:mncreate-apppandora-cloud-framework--buildmaven版权声明:本文为博主原创文章,遵循相关版权协议。如需转载或分享,请附上原文出处链接和链接出处。
