< /p>
Spring 에 대해 이야기할 때 IOC 컨테이너, DI 의존성 주입, Spring 은 클래스를 Bean 으로 표시하는 방법을 IOC 컨테이너에 주입함으로써 반전 제어 효과를 얻을 수 있습니다. 그럼 우리가 처음 Bean 을 접하기 시작했을 때, 반드시 XML 파일, 하나하나의 주입을 사용했을 것이다. 예를 들면 아래와 같다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 도전명언) < /p>
우리 프로젝트가 일반적으로 크면 수백 개의 Bean 이 필요하므로 쓰기가 번거롭습니다. Spring 은 우리가 주석을 통해 주입을 할 수 있는 방법을 실현하는 데 도움을 주었다. 주입해야 할 클래스 앞에 적절한 주석을 추가하기만 하면 Spring 은 우리가 그들을 스캔하여 주입을 실현할 수 있도록 도와준다. < /p>
XML 스캔 패키지 방식 < /p>
일반적으로 Bean 을 주입하는 가장 직설적이고 이해하기 쉬운 방법으로 주입을 할 수 있습니다. 아래 쓸데없는 말은 먼저 말하지 말고 먼저 코드를 붙이세요. < /p>
한편, Spring 시리즈 면접 시험과 답안이 모두 정리되어 자바 면접 라이브러리 애플릿을 위챗 검색하며 온라인으로 문제를 풀 수 있다. < /p>
Bean 클래스 < /p>
Configuration 클래스 < /p>
Test 클래스 < /p>
는 XML 과 약간 다릅니다 < /p>
위의 코드에서 MyBean 은 우리가 관리할 Spring 이 필요한 Bean 입니다. 그는 단순한 클래스일 뿐입니다. MyConfiguration 에서는 먼저 @Configuration 주석으로 클래스를 표시하여 해당 클래스가 Spring 의 구성 클래스임을 나타냅니다. 이 클래스는 구성을 로드할 때 로드됩니다. < /p>
MyConfiguration 에서 MyBean 의 인스턴스를 반환하는 방법을 볼 수 있습니다. 이 메서드에는 @Bean 의 주석이 표시되어 있습니다. 이는 Bean 을 주입하는 방법이며 아래에 반환된 Bean 을 IOC 에 주입합니다. < /p>
Spring Boot 기본 자습서 및 실전 예 권장:/Java stacks/spring-boot-Bean-practice
우리는 1 을 생성하고 있습니다 코드 직접 보기 < /p>
Bean 클래스 < /p>
AnotherBean 클래스 < /p>
Configuration 클래스 < /p>
; 새로운 주석이 의미하는 바를 살펴 보겠습니다: < /p>
@AutoWired
간단하고 난폭하며, 직접 번역하면 자동조립을 의미합니다: wrench:, 왜 자동조립이라고 부르는지 이해가 안 돼요: wrench: 다음 주석의 설명을 보면 알 수 있다. 여기에 주입할 때 Bean 의 id 를 지정하면 @Qualifier 주석을 사용해야 합니다. < /p>
@Component (기본 단례 모드) < /p>
클래스를 Bean 으로 바꿔서 Spring 에 주입할 수 있을 때 주석 부품 @Conmonent 를 붙이면 Bean 을 로드할 때 부품처럼 조립할 수 있습니다. wrench: 이 IOC 자동차에 < /p>
여기에 몇 가지 다른 주석도 있습니다 즉 미세 조정 @Component:
@ componentscan ("")
또는 번역, 부품 스캔, 괄호 안의 "부품 창고" 를 살펴 보겠습니다 < /p>
여기서 구조방법을 통해 주입을 하면 이해가 되네요. 우리가 MyBean 이라는 부품을 조립할 때 갑자기 그가 AnotherBean 을 기반으로 IOC 에 설치해야 한다는 것을 알게 되면, 우리는 MyBean 을 조립할 때마다 자동으로 조립합니다: wrench: anothe 예를 들어: chestnut: 예: < /p>
< P > 또는 자동차를 예로 들자면, 우리가 액셀러레이터를 밟기 전에 여기서 출발해야 하는 오토웨이드의 내용은 발차와 같다. 너는 발차하지 않는다. 이 액셀러레이터는 네가 밟아도 소용이 없다. 그는 가지 않을 것이다. < /p>
한 속성의 set 메서드에 Bean 구현을 주입할 수 있습니다. < /p>
MyBean 클래스 < /p>
Configuration 클래스 및 Test 클래스 < < /p>
를 붙이지 않습니다. 여기서 우리는 setter 메소드에 @AutoWired 가 있다는 것을 발견했습니다. 위와 달리, 이 클래스를 인스턴스화할 때 자동으로 어셈블되지 않습니다. wrench: 이 객체는 명시적으로 setter 를 호출할 때 조립됩니다. < /p>
앞의 두 가지 주입 방법 (예: 시간이 다르고 코드가 많음) 을 통해 < /p>
속성, 즉
을 통해 AnotherBean 이라는 인스턴스 개체를 사용해야 한다는 것을 알 수 있습니다. @AutoWired 를 통해 자동으로 어셈블할 수 있습니다 < /p>
MyBeanList 클래스 < /p>
MyConfiguration 클래스 < /p>
여기서는 MyBeanList 를 주입하여 List 의 요소를 하나씩 주입했습니다 < /p>
MyConfiguration 클래스 < /p>
List 의 제네릭과 같은 유형을 주입하면 유형이 자동으로 일치됩니다 < /p>
마찬가지로 Map 유형 Bean 을 주입할 수 있는 두 가지 방법이 있으며, 두 번째 우선 순위는 첫 번째 < /p>
보다 높습니다. Bean 이 주석을 통해 주입되는 몇 가지 방법이므로 XML 주입 방식과 비교해 볼 수 있습니다. < /p >