Java Spring Boot의 Autowire

MD Aminul Islam 2023년10월12일
  1. @Autowired 주석에 사용된 모드
  2. Java Spring Boot에서 @Autowired 활용
Java Spring Boot의 Autowire

Spring Boot는 널리 사용되는 Java 프레임워크입니다. Spring Boot에서 가장 많이 사용되는 어노테이션은 @Autowired로 주로 bean을 자동으로 수집하는데 사용된다.

이 기사에서는 Java Spring Boot의 @Autowired에 대해 설명합니다.

@Autowired 주석에 사용된 모드

다음은 @Autowired 주석에 일반적으로 사용되는 모드입니다.

모드 설명
no 이것은 autowiring의 기본 모드이며 기본적으로 autowiring을 비활성화합니다.
byName 이 모드는 빈의 이름에 따라 개체 종속성을 주입합니다.
byType 이 모드는 빈의 유형에 따라 개체 종속성을 주입하며 세터 메서드라고도 합니다.
constructor 이 모드는 생성자를 호출하여 개체 종속성을 주입합니다.

Java Spring Boot에서 @Autowired 활용

먼저 상위 클래스에서 autowired하려는 ClassB라는 클래스를 만듭니다. 이 클래스의 코드 예제는 다음과 같습니다.

package com.sample.demo;
import org.springframework.stereotype.Component;

@Component
public class ClassB {
  void showMSG() {
    System.out.print("This is autowired !!!");
  }
}

이 자식 클래스에는 showMSG()라는 메서드가 포함되어 있으며 @Componant 주석을 사용하여 bean 구성 요소로 선언했습니다. 이제 부모 클래스를 살펴보겠습니다.

아래는 부모 클래스의 코드입니다.

package com.sample.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class ClassA {
  @Autowired ClassB b;

  void getMSG() {
    b.showMSG();
  }
}

부모 클래스에서 ClassB자동 연결했으며 이 클래스에는 getMSG()라는 메서드가 포함되어 있습니다. @Componant 주석을 사용하여 이 클래스를 bean 구성 요소로 선언했습니다.

이제 핸들러 클래스를 살펴보겠습니다.

package com.sample.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

@SpringBootApplication
public class DemoApplication {
  public static void main(String[] args) {
    ApplicationContext context = SpringApplication.run(DemoApplication.class, args);
    ClassA a = context.getBean(ClassA.class);
    a.getMSG();
  }
}

여기에서 context에서 ClassAbean을 가져옵니다. 그런 다음 bean에서 getMSG() 메서드를 호출했습니다.

출력:

This is autowired

이 기사에서 공유하는 코드 스니펫은 Java Spring Boot 프레임워크로 작성되었습니다. 이 프로그램을 실행하기 전에 IDE에 필요한 플러그인을 설치해야 합니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn