Autowired

2024. 12. 11. 23:07·Programming/Spring
목차
  1. @Autowired 빈 주입 방식 3가지
  2. @Autowired와 빈 주입 과정 이해

@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
  1. @Autowired 빈 주입 방식 3가지
  2. @Autowired와 빈 주입 과정 이해
'Programming/Spring' 카테고리의 다른 글
  • ApplicationEventPublisher
  • @Component와 @Bean
  • ApplicationContext 2가지 빈 설정 방식
  • RequestBody 자바 객체 매핑
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (207)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (12)
      • 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
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.