--- kind: CONCEPT slug: app-bootstrap-c04 title: 자동설정 안의 @ConditionalOnBean은 컴포넌트 스캔과 다르다 topic: identity-and-value-contracts project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:app-bootstrap-c04 evidenceCapturedOn: 2026-09-01 assets: - key: app-bootstrap-c04 file: ../../../final/evidence/rendered/app-bootstrap-c04.svg evidence: - ../../../final/evidence/raw/app-bootstrap-c04.txt source: - 원본 분석 절은 final/document.md#a18#L386 이다. module: app-bootstrap --- # 자동설정 안의 @ConditionalOnBean은 컴포넌트 스캔과 다르다 7개 main 파일 전부 `@Configuration`이고 `@ConditionalOnProperty`/`@ConditionalOnBean`으로 게이트된다. 자동설정 안에서의 `@ConditionalOnBean`은 Boot가 평가 순서를 통제하므로 모듈 14 §7.1이 경고한 위험이 없다. ## 본문 7개 main 파일 전부 `@Configuration`이고 `@ConditionalOnProperty`/`@ConditionalOnBean`으로 게이트된다. ## 세 조건을 함께 쓰는 자리 `MongoPlatformHealthConfig`가 `@ConditionalOnBean` + `@ConditionalOnMissingBean` + `@ConditionalOnProperty` 셋을 함께 쓰는데, 자동설정 안에서의 `@ConditionalOnBean`은 Boot가 평가 순서를 통제하므로 모듈 14 §7.1이 경고한 컴포넌트 스캔 상의 위험이 없다. ## MongoPlatformHealthConfig 참조 위치 :::evidence key="app-bootstrap-c04" alt="코드베이스에서 MongoPlatformHealthConfig 를 검색한 출력 1줄. 이 기록이 세는 참조가 그 출력에 그대로 보인다." caption="MongoPlatformHealthConfig 코드베이스 검색 — 1줄 · exit 0" zoom="true" :::