Set 주입과 생성자 주입은 구성을 할 때 가끔 번거로울 때가 있습니다. 따라서 개발 효율성을 높이기 위해 프레임워크에서는 자동 조립 기능을 제공하고 구성을 단순화합니다. Spring 프레임워크는 기본적으로 자동 어셈블리를 지원하지 않습니다. 자동 어셈블리를 사용하려면 스프링 구성 파일에서
자동 어셈블리 속성에는 6개의 선택적 값이 있습니다. 각각 다른 의미를 나타냅니다.
1, byName
Spring 환경에서 대상 객체를 얻을 때 대상 객체의 속성은 전체 Spring 환경에서
전체 Spring 환경: 모든 Spring 구성 파일에서 검색을 의미하며 ID를 반복할 수 없습니다.
2, byType
Spring 환경에서 대상 객체를 얻을 때 대상 객체의 속성은 전체 Spring 환경에서
단점: 동일한 유형의 Bean 객체가 여러 개 있으면 오류가 발생합니다.
속성이 단일 데이터 유형인 경우 관련 객체가 여러 개 발견되면 오류가 발생합니다.
속성이 배열 또는 컬렉션(일반) 유형인 경우 관련 개체가 여러 개 발견되면 예외가 발생하지 않습니다.
3. 생성자
는 생성자 메서드를 사용하여 개체 주입을 완료합니다. 실제로는 byType을 사용하는 것과 동일하게 생성자 메서드의 매개변수 유형을 기반으로 개체 검색도 수행합니다.
4, 자동 감지
자동 선택: 객체에 매개변수 없는 생성 방법이 없으면 생성자의 자동 어셈블리 방법이 생성 주입을 위해 자동으로 선택됩니다. 개체에 매개 변수가 없는 생성자가 포함된 경우 byType 자동 어셈블리 메서드가 setter 주입을 위해 자동으로 선택됩니다.
5, no
는 자동 조립 기능을 지원하지 않습니다.
6, default
는 상위 태그의 자동 조립 값을 기본으로 사용한다는 의미입니다. 구성 파일이 여러 개인 경우 각 구성 파일의 자동 조립 방법은 독립적입니다.
구성 파일이 여러 개인 경우 구성 파일을 로드하는 방법은 다음과 같습니다.
1) 하위 구성 파일을 포함하도록 전체 구성 파일을 지정한 후 전체 구성 파일만 로드할 수 있습니다. . 전체 구성 파일 applicationContext.xml에서 가져오기 태그를 사용하여 하위 파일 패키지
코드:
ApplicationContextac= newClassPathXmlApplicationContext("applicationContext.xml");
2) 별표를 사용하면 여러 파일을 일치시켜 로드할 수 있으며, 파일 이름은 규칙을 준수해야 합니다. (권장)
//配置文件的名称 applicationContext.xml applicationContext-action.xml applicationContext-service.xml applicationContext-dao.xml ApplicationContextac =newClassPathXmlApplicationContext("applicationContext*.xml");
3) 배열을 매개변수로 사용하여 여러 구성 파일을 한 번에 로드할 수 있습니다
String[]files={"applicationContext.xml","applicationContext-test.xml"}; ApplicationContextac = newClassPathXmlApplicationContext(files);
참고: 자동 조립 기능과 수동 조립을 동시에 사용할 경우 자동 조립이 작동하지 않습니다.
위 내용은 Spring Framework 학습(4) 자동조립 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!