Autowired

2024. 12. 11. 23:07·Programming/Spring

@Autowired 빈 주입 방식 3가지

  • 생성자
  • 필드
  • Setter

@Autowired와 빈 주입 과정 이해

@Autowired로 빈을 주입할 때, required = false 옵션을 사용하면 빈 주입이 이루어지지 않아도 객체가 생성될 수 있다. 하지만 생성자 주입 방식은 주입할 빈이 반드시 필요하므로, 주입 대상 빈이 없으면 객체 생성에 실패한다.

@Component
public class ExampleService {

    private final DependencyService dependencyService;

    // 생성자 주입
    @Autowired
    public ExampleService(DependencyService dependencyService) {
        this.dependencyService = dependencyService;
    }

    @PostConstruct
    public void setup() {
        // PostConstruct 단계에서 dependencyService는 이미 주입된 상태
        System.out.println("DependencyService has been injected: " + dependencyService);
        dependencyService.performAction();
    }
}

@Autowired를 통한 빈 주입은 AutowiredAnnotationBeanPostProcessor에 의해 이루어진다. 이 작업은 Spring 생명주기의 postProcessBeforeInitialization 단계에서 실행된다. 따라서 @PostConstruct로 실행되는 메서드에서는 이미 빈이 주입된 상태로 실행된다.

AutowiredAnnotationBeanPostProcessor
BeanFactory

 

'Programming > Spring' 카테고리의 다른 글

ApplicationEventPublisher  (0) 2024.12.13
@Component와 @Bean  (0) 2024.12.12
ApplicationContext 2가지 빈 설정 방식  (0) 2024.12.11
RequestBody 자바 객체 매핑  (0) 2024.12.11
MapStruct & Lombok 적용  (0) 2022.05.04
'Programming/Spring' 카테고리의 다른 글
  • ApplicationEventPublisher
  • @Component와 @Bean
  • ApplicationContext 2가지 빈 설정 방식
  • RequestBody 자바 객체 매핑
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    minimum number of arrows to burst balloons
    Process
    Oauth2
    clone graph
    runner 기법
    socar
    lower bounded wildcards
    Thread
    AuthenticationSuccessHandler
    준영속 엔티티
    제네릭
    추상화 클래스
    algorithm
    Climbing Stairs
    OS
    fcfs
    Generic
    JSCode
    RR
    트랜잭션
    @JsonProperty
    디자인 패턴
    운영체제
    pacific atlantic water flow
    Reorder List
    BFS
    LinkedList
    wildcards
    rotting oranges
    @JsonNaming
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
Autowired
상단으로

티스토리툴바