지정된 프로파일을 기반으로 특정 클래스 구현을로드하기 위해 스프링 프로파일을 구현하려고합니다. 사용할 프로파일은 클래스 경로에 포함 된 특성 파일 내에서 특성 (spring.profiles.active)으로 지정됩니다. 여기웹 응용 프로그램에서 스프링 프로파일이 인식되지 않습니다.
출처 : https://github.com/overattribution/spring-profile-test
public interface MyService {
public void doSomething();
}
@Service
@Profile("preprod")
public class MyServicePreProdImpl implements MyService {
private final Logger LOG = LoggerFactory.getLogger(MyServicePreProdImpl.class);
@Override
public void doSomething() {
LOG.debug("Doing something in " + MyServicePreProdImpl.class.getName());
}
}
@Service
@Profile("prod")
public class MyServiceProdImpl implements MyService {
private final Logger LOG = LoggerFactory.getLogger(MyServiceProdImpl.class);
@Override
public void doSomething() {
LOG.debug("Doing something in " + MyServiceProdImpl.class.getName());
}
}
는 그러나, 나는 다음과 같은 오류를 받고 있어요 : 의존성에 대한 발견 [com.example.profileservice.MyService] 유형의 없음 자격 콩.
무엇이 누락 되었습니까?
UPDATE 1 :
내가 수동으로 웹 응용 프로그램 초기화하는 동안 활성 프로파일을 설정하고있어,하지만 난 여전히 오류 "어떤 자격 콩을 찾을 수 없습니다"얻고있다. 변화는 여기에서 볼 수있다 : https://github.com/overattribution/spring-profile-test/commit/09175a10b28ea8e5a08b43ad1416431bcf094c9d
. 그들이 어떻게 그랬는지 궁금해? – Corey
Spring Boot에서는'application.properties'에 활성 프로파일을 설정할 수도 있습니다. 그에 따라 대답을 편집했습니다. – pgiecek
그래서 나에게는 application.properties에서 속성을 선택하고 ConfigurableEnvironment.setActiveProfiles (java.lang.String ...)를 사용하여 해당 값을 설정하는 Java 클래스를 추가해야한다고 생각됩니다. – Corey