스프링 조립 bean

Spring 용 기 는 프로그램 에 있 는 bean 을 만 들 고 DI 를 통 해 이들 대상 간 의 관 계 를 조율 합 니 다.그러나 개발 자로 서 spring 에 어떤 bean 을 만 들 고 어떻게 조립 하 는 지 알려 줘 야 합 니 다.spring 은 세 가지 주요 조립 체 제 를 제공 합 니 다.
  • xml 에서 디 스 플레이 설정
  • 자바 에서 디 스 플레이 설정4.567917.암시 적 인 bean 발견 체제 와 자동 조립자동화 조립 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 을 만 듭 니 다.
    구성 요소 스 캔 을 사용 하 는 방법 은 두 가지 가 있 습 니 다.
    자바 설정 사용
  • xml 사용 하기
  • 자바 설정 활성화:
    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 {
    
    }
  • basePackage Classes 를 사용 하면 이러한 종류의 가방 을 스 캔 기본 패키지 로 설정 합 니 다
  • @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"/>

    좋은 웹페이지 즐겨찾기