Kotlin Springboot -- Part 8 인스턴스의 구성 요소 機能を使って 의존성 주입 がauto動で行われるようにする
3598 단어 springbootkotlinca
왜
DI をして 各層で完全に分離された Unit Testを書くため.
以前のインスタンスタチ
val personsDriver = PersonsDriver()
val personsGateway = PersonsGateway(personsDriver)
val personsUsecase = PersonsUsecase(personsGateway)
val persons = personsUsecase.getAllPersons()
これまでは 휴식 に 全てのインスタンスを作成して
class PersonsUsecase(val personsGateway: PersonsGateway) {
fun getAllPersons():Persons {
return personsGateway.getAllPersons()
}
}
사용 사례
Rest & Usecase を引数에서 読み込む
@RestController
class PersonHandler(
val personsUsecase: PersonsUsecase
) {
Rest でも引数で Usecase のinstancesを読み込むようにする.
HANDRANO 一番上に書いても これ다だけだ と クラスの インスタンスなどない.
@Component
class PersonsUsecase(
val personsGateway: PersonsGateway,
) {
だが、Usecase に Component のAnnotationをつける ことで, これはアプリが動いた直後に優先して取り込むものとして認識されるので, RestController とし数としけしるこ.
@Component
class PersonsGateway(
val personsDriver: PersonsDriver
) {
@Component
class PersonsDriver {
Gateway 와 Driver でも同様に書く.
これで各層の引数に書いておけば、Automotiveで各層が依存している層のinstanceを使用できるようになった.
まとめ
Rest 와 Domain 以外の各層で Component Annotationを書く.
そして Rest から Gateway まで引数に、依存する層のインスタンスを書く.
これで 휴식 で全ての層のinstantsを作成しなくても依存する層のinstantsが使えるようになる.
Reference
이 문제에 관하여(Kotlin Springboot -- Part 8 인스턴스의 구성 요소 機能を使って 의존성 주입 がauto動で行われるようにする), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaede_io/kotlin-springboot-part-8-insutansunozuo-cheng-wo-component-ji-neng-woshi-tutezi-dong-dexing-wareruyounisuru-444n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)