spring 의 부자 용기 및 설정
spring 전체 컨 텍스트 용 기 는 부자 의 구분, 부모 용기 와 하위 용기 가 있 습 니 다. * *부모 용 기 는 하위 용 기 를 볼 수 있 고, 하위 용 기 는 부모 용기 에 보이 지 않 습 니 다 * *.
전통 적 인 spring mvc 에 있어 서 spring mvc 용 기 는 하위 용기 입 니 다. 즉, ServletDispatcher 에 대응 하 는 용 기 는 하위 용기 이 고 웹. xml 에 서 는 ConextLoaderListener 의 contextConfigLocation 속성 을 통 해 부모 용기 로 설정 되 어 있 습 니 다.
부자 용기 사용 장면
부자 용기 의 주요 용 도 는 문맥 격 리 이다.다음 장면 을 고려 해 보 자.
procject - service. jar 는 서비스 계층 모듈 입 니 다.데이터베이스 서비스 방법 을 포함 합 니 다.대응 하 는 spring 설정 파일 은 procject - service. xml 입 니 다
프로젝트 - api 는 api 서버 코드 입 니 다.그것 은 procject - service. jar 에 의존한다.대응 하 는 프로필 은 procject - api. xml 입 니 다
procject - api 는 procject - service 의 일부 방법 을 decorate 하여 장식 해 야 합 니 다. 예 를 들 어 customerService 에 장식 해 야 합 니 다.장 식 된 종 류 는 Cached Customer Service 입 니 다.그래서 현재 procject - api 에는 두 개의 customer Service 가 포함 되 어 있 습 니 다. 하 나 는 procject - service 에서 온 customer Service 이 고 다른 하 나 는 Cached customer Service 입 니 다.이 럴 때 procject - api 프로젝트 의 모든 프로필 이 하나의 컨 텍스트 를 통 해 불 러 오 면 문제 가 발생 합 니 다. (일반적인 방법 은 import 태그 로 모두 import 에 들 어 오 는 것 입 니 다)프로젝트 의 PayService 에 @ Resource 기준 을 통 해 CustomerService 를 주입 하 였 기 때문에 다음 과 같 습 니 다.
@Serivce
public class PayService{
@Resource
private CustomerService cusService;
}
해결 방법
이때 컨 텍스트 가 customerService 속성 을 주입 할 때 두 개의 customerService 를 만 났 습 니 다.그것 은 어떤 서 비 스 를 주입 하 는 지 판독 할 수 없다.
물론 페 이 서비스의 리 소스 속성 을 바 꾸 고 구체 적 으로 어떤 것 을 주입 할 지 지정 하 라 는 말 이 나 올 것 이다.그러나 procject - service. jar 가 제3자 라 이브 러 리 라면 원본 코드 를 받 지 않 는 한 코드 를 바 꿀 수 없습니다.
이 럴 때 부자 용기 로 이 문 제 를 해결 할 수 있다.
procject - service 를 부모 용기 에 넣 고 procject - api 의 모든 bean 은 하위 용기 로 불 러 옵 니 다.
procject - api 의 컨 텍스트 설정 파일 이 procject - api. xml 이 라 고 가정 하면 실현 방법 은 다음 과 같 습 니 다.
1. procject - total. xml 정의
classpath:project-service.xml
classpath:project-api.xml
2. 웹. xml 의 컨 텍스트 설정 은 다음 과 같 습 니 다.
contextConfigLocation
classpath*:project-total.xml
org.springframework.web.util.Log4jConfigListener
org.springframework.web.context.ContextLoaderListener
serviceContext 는 부모 용기 이 고 apicontext 는 하위 용기 이 며 serviceContext 는 apicontext 를 볼 수 없 으 며 apicontext 는 serviceContext 의 효 과 를 볼 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.