주뇽's 저장소

[Java Spring] 의존성 주입 방법 본문

웹개발/SpringBoot

[Java Spring] 의존성 주입 방법

뎁쭌 2023. 11. 21. 22:24
728x90
반응형

Spring 의존성 주입 방법 3가지

- 생성자 기반 (Bean)

@Autowired 생성자 기반은 해당 어노테이션이 의무가 아니다.
Spring 팀은 하나의 메서드에서 모든 초기화가 진행되는 생성자 주입을 항상 추천한다.!
@Component
class myClass{
    Dependency1 dependency1;

    Dependency2 dependency2;
//    @Autowired 생성자 기반은 해당 어노테이션이 의무가 아니다.
    public myClass(Dependency1 dependency1, Dependency2 dependency2) {
        this.dependency1 = dependency1;
        this.dependency2 = dependency2;
    }
    public String to_String(){
        return "Using " + dependency1 + "and" +  dependency2;
    }
}

@Component
class Dependency1{

}
@Component
class Dependency2{

}

- 수정자 기반 (Setter)

class myClass{
    Dependency1 dependency1;

    Dependency2 dependency2;

    @Autowired
    public void setDependency1(Dependency1 dependency1) {
        this.dependency1 = dependency1;
    }
    @Autowired
    public void setDependency2(Dependency2 dependency2) {
        this.dependency2 = dependency2;
    }

    public String to_String(){
        return "Using " + dependency1 + "and" +  dependency2;
    }
}

@Component
class Dependency1{

}
@Component
class Dependency2{

}

 

- 필드 기반 (리플렉션을 이용) 

@Component
class myClass{
    @Autowired
    Dependency1 dependency1;
    @Autowired
    Dependency2 dependency2;

    public String to_String(){
        return "Using " + dependency1 + "and" +  dependency2;
    }
}
@Component
class Dependency1{

}
@Component
class Dependency2{

}
@Autowired를 통해 의존성을 주입해줘야함