2017-11-08 8 views
0

다음 스프링 빈을 xml에서 javaconfig 클래스로 변환하려고합니다.xml to javaconfig : 프로필 및 속성

<bean name="recorder" class="Recorder" />  
<bean name="RecordFilter" class="RecordFilter"> 
    <property name="resourceLocation" value="classpath:ports.list" /> 
</bean> 

<bean name="iRecorder" class="iRecorder"> 
    <property name="auditRecorder" ref="auditRecorder" /> 
</bean> 

<beans profile="logging"> 
    <bean name="logger" class="Logger" /> 
</beans> 

는하지만 JavaConfig에서 프로필과 심판을 작성하는 방법을 잘 모릅니다 :

@Configuration 
public class AppConfig { 
    @Bean 
    public Recorder recorder() { 
     Recorder recorder = new Recorder(); 
     return recorder; 
    } 

    @Bean 
    public Filter filter(){ 
     Filter filter = new Filter(); 
     filter.setResourceLocation("classpath:audit/ignoredports.list"); 
     return filter; 
    } 

    @Bean 
    public Recorder recorder(){Recorder recorder = new Recorder(); 
     ??????? 
     return methodInvocationRecorder; 
    } 

    @Bean 
    ?????????????? 

} 

내가 같은 요청을 보았지만 대답을 찾을 돌아가신`t.

답변

0

나는 당신이 달성하고자하는 것을 100 % 확신하지는 못했지만 올바른 방향으로 당신을 가리킬 수 있습니다.

<beans profile="logging"> 
    <bean name="logger" class="Logger" /> 
</beans> 

는 자바 설정에서이 같이 표현 될 수있다 :

@Configuration 
@Profile("logging") 
public class LoggingConfiguration { 

    @Bean 
    public Logger logger() { 
     Logger myLogger = new Logger(); 
     return myLogger; 
    } 

} 

따라서 로거 빈 것

봄 자바 설정은 @profile

그래서 당신의 예를 복용 허용 않습니다 "로깅"프로파일이 활성화 된 경우에만 사용 가능/생성됩니다.

스프링 프로파일을 활성화하는 간단한 방법은 속성들을 설정이다

spring.profiles.active=dev,logging 

이 또한 환경 변수로 겹쳐 쓸 수있다.

자세한 내용은 다음을 참조하십시오. https://docs.spring.io/spring/docs/5.0.1.RELEASE/spring-framework-reference/core.html#beans-definition-profiles-java