스프링 조립 bean
@component 주 해 를 사용 하여 spring 에서 발견 할 수 있 는 bean 을 만 듭 니 다.예 를 들 면:
package springdemo.test1.entity.impl;
import org.springframework.stereotype.Component;
import springdemo.test1.entity.ICar;
@Component
public class AudiCar implements ICar{
String carName = "audi";
@Override
public void drive() {
System.out.println(carName + "is running");
}
}
Audicar 는@Component 주석 을 사 용 했 습 니 다.spring 은 구성 요소 스 캔 을 사용 하면@Component 주석 이 있 는 종 류 를 자동 으로 찾 아 bean 을 만 듭 니 다.
구성 요소 스 캔 을 사용 하 는 방법 은 두 가지 가 있 습 니 다.
자바 설정 사용
package springdemo.test1.entity.config;
import org.springframework.context.annotation.ComponentScan;
@Configuration
@ComponentScan
public class CarConfig {
}
클래스 CarConfig 는@Componentscan 주 해 를 사용 하여 구성 요소 스 캔 을 사용 합 니 다.기본적으로 설정 클래스 와 같은 가방 을 스 캔 합 니 다.
CarConfig 와 Audicar 가 서로 다른 가방 에 있 는 것 을 발견 할 수 있 습 니 다.따라서 스 캔 의 기본 패키지 도 설정 해 야 합 니 다.
value 속성 을 직접 설정 합 니 다
@Configuration
@ComponentScan("impl")
public class CarConfig {
}
basePackages 속성 설정 사용
@Configuration
@ComponentScan(basePackages="impl")
public class CarConfig {
}
basePackages 속성 설정 여러 개 사용 하기
@Configuration
@ComponentScan(basePackages= {"impl","config"})
public class CarConfig {
}
@Configuration
@ComponentScan(basePackageClasses= {ICar.class,CarConfig.class})
public class CarConfig {
}
xml 사용 하기:
package="springdemo.test1.entity.impl" />
bean 에 주 해 를 추가 하여 자동 조립 실현(@Autowired)
package springdemo.test1.entity.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import springdemo.test1.entity.ICar;
import springdemo.test1.entity.IEngine;
@Component
public class AudiCar implements ICar{
String carName = "audi";
private IEngine engine;
@Autowired
public AudiCar(IEngine engine)
{
this.engine = engine;
}
@Override
public void drive() {
engine.output();
System.out.println(carName + "is running");
}
}
@Autowired 주 해 는 구조 기 뿐만 아니 라 속성의 setter 방법 에 도 사용 할 수 있 습 니 다.
@Autowired
public void setIEngine(IEngine engine)
{
this.engine = engine;
}
spring 에서 bean 을 초기 화 한 후에 가능 한 한 bean 의 의존 을 만족 시 켜 야 합 니 다.구조 기,setter 방법 이 든 다른 방법 이 든 spring 은 방법 적 매개 변수 에 대한 의존 도 를 만족 시 키 려 고 시도 합 니 다.만약 에 하나의 bean 만 의존 수요 에 부합된다 면 이 bean 은 조립 될 것 입 니 다.
자바 코드 로 bean 조립
@Configuration 주 해 를 사용 하여 설정 류 를 만 듭 니 다.이 종 류 는 spring 응용 컨 텍스트 에서 bean 을 만 드 는 방법 에 대한 자세 한 정 보 를 포함 해 야 합 니 다.
javaconfig 에서 bean 을 설명 하려 면 하나의 방법 만 작성 해 야 합 니 다.이 방법 은 필요 한 형식의 인 스 턴 스 를 만 들 고 이 방법 에@Bean 주 해 를 추가 합 니 다.
@Configuration
public class CarConfig2 {
@Bean
public IEngine setIEngine()
{
return new AudiEngine();
}
}
이 방법 에서 bean 인 스 턴 스 를 어떻게 만 드 는 지 는 자바 언어의 제한 만 받 습 니 다.
자바 Config 를 통 해 주입 을 실현 합 니 다.
@Configuration
public class CarConfig2 {
@Bean
public IEngine setIEngine()
{
return new AudiEngine();
}
@Bean
public ICar getCar()
{
return new AudiCar(setIEngine());
}
}
한 마디 로 하면 자바 Config 설정 bean 과 조립 의존 관심 두 가 지 를 사용 하면 됩 니 다.하 나 는@Configuration 주 해 를 사용 하여 설정 류 를 만 드 는 것 이 고,다른 하 나 는@Bean 주 해 를 사용 하여 bean 의 생 성 논리 와 의존 주입 을 완성 하 는 것 입 니 다.
bean 을 xml 로 조립 합 니 다.
spring 프로필 에 요소 설명 bean 사용 하기:
class="springdemo.test1.entity.impl.AudiEngine"/>
bean 의 특징 을 xml 로 설명 합 니 다:
4.567917.자신 은 bean 인 스 턴 스 를 직접 만 드 는 것 을 책임 지지 않 아 도 됩 니 다.자바 Config 기반 설정 에서 자체 적 으로 bean 을 만들어 야 합 니 다.spring 이 요 소 를 발견 하면 AudiEngine 의 기본 구조 기 를 호출 하여 만 듭 니 다
4.567917.cless 속성 에 설정 한 값 은 문자열 입 니 다.컴 파일 기간 검사 에서 형식 문자열 이 정확 한 지 알 수 없습니다.(그러나 현재 IDE 는 모두 검 사 를 할 수 있 습 니 다.마 우 스 는 문자열 에 있 고 ctr 를 누 르 면 점프 할 수 있 는 지 확인 할 수 있 습 니 다)xml 에 bean 을 설정 합 니 다.선택 할 수 있 는 방법 은 요 소 를 사용 하고 class 속성 을 지정 하 는 것 입 니 다.spring 은 자체 적 으로 bean 을 만 듭 니 다.
그러나 xml 에서 DI 를 설명 할 때 주입 에 의존 하 는 두 가지 방식 이 있 습 니 다.
구조 기 주입
속성 주입
구조 기 주입
사용 실현 구조 기 주입
class="springdemo.test1.entity.impl.AudiEngine"/>
class="springdemo.test1.entity.impl.AudiCar">
spring 3.0 이 도입 한 c-네 임 스페이스 를 사용 하여 구조 기 주입 을 실현 합 니 다.
class="springdemo.test1.entity.impl.AudiCar" c:engine-ref="iEngine"/>
'c:'로 시작 하면 네 임 스페이스 접두사 이 고 그 다음은 조립 할 구조 기의 매개 변수 이름 입 니 다.그 다음은'-ref'로 조립 한 것 이 참조 임 을 나타 냅 니 다.
속성 주입
class="springdemo.test1.entity.impl.AudiCar">
마찬가지 로"p-"네 임 스페이스 속성 주입 스타일 도 있 습 니 다:
class="springdemo.test1.entity.impl.AudiCar" p:engine-ref="iEngine"/>
p-네 임 스페이스 의 약속 은 c-네 임 스페이스 의 약속 과 같다.
메모:bean 참조 가 아니 라 글자 의 양 을 주입 합 니 다.
가 져 오기 및 혼합 설정
우선,자동 조립 을 말 할 때,조립 할 bean 이 어디에서 왔 는 지 신경 쓰 지 않 습 니 다.자동 조립 을 할 때 spring 용기 의 모든 bean 을 고려 합 니 다.javaConfig 에서 나 xml 에서 설명 하 든 구성 요소 스 캔 을 통 해 얻 을 수 있 습 니 다.
자바 Config 에서 xml 설정 을 참조 하 는 방법
@ImportResource("classpath:applicationContext-bean.xml")
또한 javaConfig 설정 은@Import(CarConfig.class)를 통 해서 도 가능 합 니 다. 주 해 를 통합 하 다
xml 에서 자바 Config 설정 을 참조 하 는 방법
요 소 를 사용 하여 자바 Config 설정 류 를 xml 의 bean 으로 설명 하면 됩 니 다.
마찬가지 로 xml 프로필 자체 의 통합 은 요 소 를 사용 할 수 있 습 니 다.
<import resource="engine.xml"/>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.