如何使用@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
答案 0 :(得分:0)
您可以这样写:
@Inject
var greetingService:GreetingService;
或者您可以在构造函数上完成
class HelloController(@Inject val greetService:GreetService)
我喜欢第二个选项,因为它使用val而不是var。
答案 1 :(得分:0)
@Singleton
class GreetService(val userRepo:UserRepo){
fun doSomething(val data:String){
userRepo.saveData(data)
}
}
要使用Micronaut,必须使用提供的注释(例如@Singleton,@Context,@ ThreadLocal等)将要注入的bean声明为bean。