복붙노트

[SPRING] Spring : 특정 빈이 먼저 초기화되는지 확인한다.

SPRING

Spring : 특정 빈이 먼저 초기화되는지 확인한다.

Log4j (log4j.properties 또는 log4j.xml 없음)의 런타임 설치 및 구성을 수행하는 라이브러리가 있습니다. MyLoggerFactory라는 클래스로 bean을 정의했고, 이것을 봄을 사용하여 초기화 된 첫 번째 bean으로 만들고 싶습니다. Spring 컨테이너 초기화를위한 첫 번째 bean으로 bean을 표시 할 수있는 방법이 있는지 궁금합니다.

해결법

  1. ==============================

    1.선택할 수있는 옵션은 다음과 같습니다.

    선택할 수있는 옵션은 다음과 같습니다.

    Spring에서 초기화 순서를 명시 적으로 정의 할 방법은 없으며 충돌하는 순서가있는 많은 응용 프로그램 컨텍스트 구성 파일을로드 할 수 있다고 간주하여 유용한 의미를 정의 할 수있는 방법이 없습니다. 의존성 주입 패턴을 더 잘 따르도록 코드를 리팩토링하여 원하는 순서를 얻을 수없는 경우를 아직 보지 못했습니다.

  2. ==============================

    2.주 @Configuration에서 @Autowired @Configuration을 수행 할 수 있습니다.

    주 @Configuration에서 @Autowired @Configuration을 수행 할 수 있습니다.

    @Configuration
    @Import(BusinessConfig.class, EarlyBeans.class)
    public class MainConfiguration {
    
        // The bean defined in EarlyBean will be loaded before 
        // most beans references by MainConfiguration, 
        // including those coming from BusinessConfig
        @Autowired
        EarlyBean earlyBean;
    
    }
    
    @Configuration
    public class EarlyBeans {
        @Bean
        public Void earlyBean(ApplicationContext appContext) {
            // .getBeansOfType allows to call for beans which might not exist
            appContext.getBeansOfType(TechnicalBean.class);
    
            return null;
        }
    
    }
    
  3. ==============================

    3.이 기능은 요청되었지만 해결되지 않았습니다. depends-on을 사용할 수는 있지만 너무 길다. 자세한 정보는 다음 링크를 참조하십시오 : https://jira.springsource.org/browse/SPR-3948

    이 기능은 요청되었지만 해결되지 않았습니다. depends-on을 사용할 수는 있지만 너무 길다. 자세한 정보는 다음 링크를 참조하십시오 : https://jira.springsource.org/browse/SPR-3948

  4. ==============================

    4.응용 프로그램 컨텍스트를 여러 개로 분할하고 기본 응용 프로그램 컨텍스트에서 가져 오기를 사용할 수 있습니다. 기본 환경 설정을 가져 오기 순서대로 놓고 다른 파일을 계속 추가 할 수 있습니다.

    응용 프로그램 컨텍스트를 여러 개로 분할하고 기본 응용 프로그램 컨텍스트에서 가져 오기를 사용할 수 있습니다. 기본 환경 설정을 가져 오기 순서대로 놓고 다른 파일을 계속 추가 할 수 있습니다.

    그것은 아래처럼 될 수 있습니다.

    <!-- Import environment properties settings. -->
    <import resource="Spring-Env.xml"/>
    <!-- Import All the other Application contexts. -->
    <import resource="Spring-MainApplicationContext.xml"/>
    
  5. from https://stackoverflow.com/questions/7868335/spring-make-sure-a-particular-bean-gets-initialized-first by cc-by-sa and MIT license