2016-10-25 4 views
1

동일한 인터페이스를 구현하는 두 개의 @Component Bean이 있습니다. 아래처럼 프로필 주석이 있고 다른 프로파일 주석은 없습니다. 내가 -Dspring.profiles.active=mock 사용하여 응용 프로그램을 실행하는 경우스프링 프로파일 모호성

@Component 
@Profile("mock") 
public class CompMock implements Comp {...} 

@Component 
public class CompReal implements Comp {...} 

, 왜 두 번째 콩 대신 명시 적 프로파일 ("모의")와 주석이 첫 번째의 배선입니까?

답변

3

@Profile("mock")은 프로파일이 "mock"인 경우를 의미합니다. 그게 다야. @Profile은 환경 설정을 나타내지 않습니다.

@Profile("!mock")CompReal을 추가하는 등 여러 가지 방법으로 문제를 해결할 수 있습니다.

+0

기본 주석을 CompMock 레벨에 추가하여 수정했습니다. 고마워요 @zeroflagL – TheRock3t

+0

@Profile (! mock)은 문제를 해결하지만 정말보기 흉하게 보입니다. 더 멋진 방법으로 해결할 수있을 것입니다. – XZen