스프링: 특정 콩을 먼저 초기화해야 합니다.
log4j(log4j.properties 또는 log4j.xml 없음)의 런타임 설정 및 구성을 수행하는 라이브러리가 있습니다.My Logger Factory라는 클래스의 빈을 정의했으며 이 빈이 스프링을 사용하여 처음으로 초기화되기를 원합니다.초기화 순서에 대한 지원을 받기 위해 스프링에 이미 문제가 제기된 것을 보았습니다만, 봄 컨테이너에 의해 최초로 초기화된 콩으로 콩을 표시할 수 있는 방법이 있는지 궁금합니다.
옵션은 다음과 같습니다.
- 주석(봄 3.0.x 이후에 사용 가능) 또는 xml-속성을 사용하고 구성된 로거를 사용하는 모든 클래스를 로거 팩토리에 종속시킵니다.
- 공장을 벌목꾼을 위한 실제 공장으로 만들고, 공장에 직접 전화를 거는 대신 벌목꾼을 콩에 주입합니다. 즉, 종속성이 명시되어 있다는 점을 제외하고는 옵션 1과 기본적으로 동일합니다.이것이 제가 추천하는 옵션입니다.
- 초기화 코드를 통화 순서가 지정된 코드 부분으로 이동합니다.
main()
방법, 또는ServletContextListener
Spring을 초기화하는 것보다 먼저 등록되었습니다.
Spring에서 초기화 순서를 명시적으로 정의할 수 있는 방법은 없으며 앞으로도 그럴 가능성이 높습니다. 순서가 충돌할 수 있는 많은 애플리케이션 컨텍스트 구성 파일을 로드할 수 있기 때문에 유용한 의미론을 정의할 방법이 없습니다.의존성 주입 패턴을 더 잘 준수하도록 코드를 리팩터링하여 원하는 주문을 달성할 수 없었던 경우는 아직 본 적이 없습니다.
기본 @Configuration에서 @Autowired a @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
EarlyBeans earlyBeans;
}
@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;
}
}
요청되었지만 해결되지 않은 기능입니다.의존 관계를 사용할 수 있지만 너무 장황합니다.자세한 내용은 다음 링크를 참조하십시오. https://jira.springsource.org/browse/SPR-3948
응용프로그램 컨텍스트를 여러 개로 분할하고 기본 응용프로그램 컨텍스트에서 가져오기를 사용할 수 있습니다.기본 환경 설정을 가져오기 순서대로 먼저 배치한 다음 다른 파일을 계속 추가할 수 있습니다.
아래와 같을 수 있습니다.
<!-- Import environment properties settings. -->
<import resource="Spring-Env.xml"/>
<!-- Import All the other Application contexts. -->
<import resource="Spring-MainApplicationContext.xml"/>
언급URL : https://stackoverflow.com/questions/7868335/spring-make-sure-a-particular-bean-gets-initialized-first
'programing' 카테고리의 다른 글
powershell에서 마침표 '.' 연산자는 무엇을 합니까? (0) | 2023.07.30 |
---|---|
CGPoint 데이터를 사용한 NSLog (0) | 2023.07.30 |
아나콘다의 스파이더를 업데이트하는 방법 (0) | 2023.07.30 |
풀링HttpClientConnectionManager가 연결을 해제하지 않음 (0) | 2023.07.30 |
ASP에서 캐싱을 금지합니다.속성을 사용하는 특정 작업에 대한 NET MVC (0) | 2023.07.30 |