当前位置: 首页 > 知识库问答 >
问题:

在micronaut Kotlin中,带有@Inject注释的依赖项注入是如何工作的?

酆意智
2023-03-14

如何在类中注入依赖与@Inject注释micronaut框架

@Controller("/")
class HelloController(val greetService:GreetService){

 @Get("/hello")
 fun getMessage(){
    greetService.greet 
  }

}

class GreetService(val userRepo:UserRepo){

  fun doSomething(val data:String){
      userRepo.saveData(data)
  } 
}
class UserRepo(val db:DbHandler){
     fun saveData(val data){
       db.save(data)
     }
}

如何使用@Inject

共有2个答案

崔琦
2023-03-14
 @Singleton
 class GreetService(val userRepo:UserRepo){

 fun doSomething(val data:String){
  userRepo.saveData(data)
     } 
   }

要注入的bean必须使用提供的注释(如@Singleton、@Context、@ThreadLocal等)按照Micronaut声明为bean

呼延河
2023-03-14

没有什么不同,你可以写这样的东西:

@Inject
var greetingService:GreetingService;

或者你可以在构造函数上做

class HelloController(@Inject val greetService:GreetService)

我更喜欢第二个选项,因为它使用val而不是var。

 类似资料:
  • 我一直在尝试将< code>webdriver注入到步骤中。我已经使用了这个说明,效果很好。 想法是将WebDriver作为服务注入到steps类中。在初始步骤,您需要添加以下依赖项。 依赖关系注入涉及三个主要类。在这里,我们逐一介绍它们。 BaseUtil BaseUtil是具有WebDriverof Selenium属性的类。这个类非常简单: 钩 钩子类包含之前和之后的

  • 问题内容: 我是AngularJS的新手,我想了解更多有关默认注入的依赖项的信息。在阅读代码时,我注意到有时依赖项是事先明确声明的,有时则不是。例如: 给出与以下结果相同的结果: 这是如何运作的?Angular是否假设要注入的模块的名称与参数中的变量相同? 同样,奇怪的是,如果您确实指定将要注入的依赖项,则必须以 正确的顺序 指定 所有 依赖项,否则将无法正常工作。例如,这是损坏的代码: 有人可以

  • 使用 @Inject 注解可以向 Controller 以及 Interceptor 中注入依赖对象,使用注入功能需要如下配置: public void configConstant(Constants me) { // 开启对 jfinal web 项目组件 Controller、Interceptor、Validator 的注入 me.setInjectDependency(t

  • 我正在使用spring官方教程中的示例进行实验,并且对此代码有一个依赖关系: https://github.com/spring-guides/gs-async-method/tree/master/complete 如果您查看类上的代码,我有两个问题: 当服务器启动时,如果我在这个类的构造函数中放置一个断点,就像在构造函数中一样,是由spring使用配置的bean提供的。但是,构造函数上没有注释

  • 我正在写一个代码,它需要与QUUKUS和Spring DI兼容。我同时使用DI和Spring Boot Properties扩展,也就是Spring Boot扩展。显然,它工作得很好,但是从外部依赖项注入任何其他对象都不会被注入任何地方。QUUKUS似乎不认识它。 这是Spring扩张的某种限制吗?我已经试过使用属性,并尝试包含作为Quarkus扩展结构的dependency,但不起作用。 编辑1

  • 我正在尝试使用Quarkus1.6.1.Final和OpenJDK11解决存储库模式的依赖注入问题。我想实现Inject with Interface,并给他们一些参数(如或)来指定具体类,但目前我有并且不确定如何修复它。 这里是我的代码部分。 UseCase类: 存储库接口: 我阅读并尝试了以下文章: 部分公文: 夸克-上下文和依赖注入https://quarkus.io/guides/cdi-