찾다
Javajava지도 시간Spring IOC 및 DI 이해

Spring IOC 및 DI 이해

Jun 22, 2017 pm 02:55 PM
spring

IOC는 "Inversion of Control"이라는 디자인 아이디어입니다.

1. 얕은 수준 - 이름에서 분석
"제어"는 생성, 유지 관리, 파괴 등 객체의 수명 주기를 제어하는 ​​것을 의미하며 일반적으로 새로운 키워드를 사용하는 등 우리 프로그램에 의해 적극적으로 제어됩니다. 객체를 생성(생성)하고, 사용 중에 참조를 유지(유지)하는 데 사용되며, GC는 모든 참조가 손실된 후 객체를 재활용(파괴)합니다.
"역전(Inversion)"이란 객체의 생성, 유지, 소멸 등 생명주기에 대한 제어가 프로그램 제어에서 IOC 컨테이너 제어로 변경되는 것을 의미합니다. 객체가 필요할 때 IOC 컨테이너에서 이름으로 직접 얻을 수 있습니다.

2. 더 깊은 수준 - DI의 경우 종속성 주입은 IOC의 중요한 구현입니다.
객체 생성에는 종종 다른 객체를 보유하는 객체 A의 멤버 변수와 같은 다른 객체 생성이 포함됩니다. B, 이것은 종속성입니다. A는 B에 의존합니다. IOC 메커니즘이 객체 생성을 담당하므로 이 종속성도 IOC 컨테이너에서 처리해야 합니다. 책임 있는 방법은 DI(종속성 주입)입니다. 종속성을 구성 파일에 기록한 다음 종속성이 있는 개체를 생성할 때 IOC 컨테이너가 종속 개체를 주입합니다. 예를 들어 A를 생성할 때 종속성이 있는 것으로 감지되고 IOC 컨테이너는 A가 의존하는 개체 B를 생성하여 A에 주입한 다음(어셈블리, 리플렉션 메커니즘을 통해 구현) A를 개체 요청자에게 반환하여 작업을 완료합니다.

3. IOC의 의의는 무엇인가요?
IOC는 더 많은 기능을 구현하지는 않지만, 그 존재로 인해 많은 코드를 요구하거나 객체 간의 복잡한 결합 관계를 고려하지 않고도 IOC 컨테이너에서 적절한 객체를 얻을 수 있으며 객체에 대한 안정적인 관리를 제공하여 개발 복잡성을 크게 줄입니다.

위 내용은 Spring IOC 및 DI 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.