programing

프로필이 활성화되지 않은 경우 빈 정의 포함

copyandpastes 2023. 8. 14. 23:38
반응형

프로필이 활성화되지 않은 경우 빈 정의 포함

저는 신청서에서 특정 콩을 자동 배선에 적합하게 만들기 위해 몇 가지 프로필을 사용합니다.제가 놓치고 있는 것은 특정 프로필이 활성화되지 않았을 때 자동 배선에 적합한 빈을 만들 수 있는 가능성입니다.

제가 생각한 가장 좋은 방법은 다음과 같습니다.

  1. 가능한 모든 프로필 목록(예: {A, B, C, D})이 있다고 가정합니다.
  2. 특정 실행에 대해 활성화된 프로파일은 {A, C}입니다.
  3. 제가 하는 일은 활성화되지 않은 가능한 모든 프로필에 대한 인공 프로필을 만드는 것입니다.이 예에서는 {not_B, not_D}개의 프로파일을 생성합니다.
  4. 활성화되지 않은 프로필을 기반으로 활동하고 싶은 콩X프로필을 위해 활동합니다.not_X나의 경우 프로필 B가 활성화되지 않은 상태에서 자동 배선에 적합한 콩을 원한다면 주석을 달 것입니다.@Profile("not_B")

그러나 이 솔루션에는 가능한 모든 프로필에 대한 사전 지식이 필요합니다.

더 좋은 해결책이 없을까요?

(!) 연산자가 아닌 연산자를 사용할 수 있습니다...스프링 3.2 M1을 사용해야 합니다.

이제 다음 구문이 지원됩니다.

<beans profile="A,!B">

@Profile({"A", "!B"})

프로파일 'A'가 활성화되거나 프로파일 'B'가 활성화되지 않은 경우에만 요소 또는 주석이 달린 구성 요소를 처리해야 함을 나타냅니다.

변경 사항은 여기에서 발표됨: Spring Framework 3.2 M1 출시
커밋이 GitHub에 있음: 프로파일 선택에 대한 지원 없음(!) 연산자
JIRA의 문제: SPR-8728

당신의 프로젝트에서 Spring 3.2로의 업그레이드가 불가능하다면, 저는 사용하지 않는 것을 추천합니다.@Profile접근하여 스프링 구성에 빈이 생성되지 않았는지 확인합니다.

언급URL : https://stackoverflow.com/questions/13575201/including-bean-definition-when-a-profile-is-not-active

반응형