Micronaut 控制反轉(zhuǎn)

2023-02-25 14:13 更新

與依賴運(yùn)行時(shí)反射和代理的其他框架不同,Micronaut 使用編譯時(shí)數(shù)據(jù)來(lái)實(shí)現(xiàn)依賴注入。

這是 Google Dagger 等工具采用的類似方法,它主要是為 Android 設(shè)計(jì)的。另一方面,Micronaut 專為構(gòu)建服務(wù)器端微服務(wù)而設(shè)計(jì),并提供許多與其他框架相同的工具和實(shí)用程序,但不使用反射或緩存過(guò)多的反射元數(shù)據(jù)。

Micronaut IoC 容器的目標(biāo)總結(jié)為:

  • 使用反射作為最后的手段

  • 避免代理

  • 優(yōu)化啟動(dòng)時(shí)間

  • 減少內(nèi)存占用

  • 提供清晰易懂的錯(cuò)誤處理

請(qǐng)注意,Micronaut 的 IoC 部分可以完全獨(dú)立于 Micronaut 用于您希望構(gòu)建的任何應(yīng)用程序類型。

為此,請(qǐng)配置您的構(gòu)建以包含 micronaut-inject-java 依賴項(xiàng)作為注釋處理器。

最簡(jiǎn)單的方法是使用 Micronaut 的 Gradle 或 Maven 插件。以 Gradle 為例:

配置 Gradle

plugins {
    id 'io.micronaut.library' version '1.3.2' (1)
}

version "0.1"
group "com.example"

repositories {
    mavenCentral()
}

micronaut {
    version = "3.8.5" (2)
}
  1. 定義 Micronaut 庫(kù)插件

  2. 指定要使用的 Micronaut 版本

IoC 的入口點(diǎn)是 ApplicationContext 接口,其中包括一個(gè)運(yùn)行方法。下面的例子演示了它的使用:

運(yùn)行 ApplicationContext

try (ApplicationContext context = ApplicationContext.run()) { (1)
    MyBean myBean = context.getBean(MyBean.class); (2)
    // do something with your bean
}
  1. 運(yùn)行 ApplicationContext

  2. 從 ApplicationContext 中檢索一個(gè) bean

該示例使用 Java try-with-resources 語(yǔ)法來(lái)確保 ApplicationContext 在應(yīng)用程序退出時(shí)干凈地關(guān)閉。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)