xml 到 javaconfig:配置文件和属性

xml to javaconfig: profile and properties

我想将以下 spring 个 bean 从 xml 转换为 javaconfig class。

<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 中编写 profile 和 ref:

@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
    ??????????????

}

我看到了相同的请求,但没有找到答案。

我不是 100% 确定您要实现的目标,但这可能会为您指明正确的方向。

Spring java 配置允许 @Profile

以你为例:

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

在java配置中可以这样表示:

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

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

}

因此,当 "logging" 配置文件处于活动状态时,记录器 bean 只会 available/created。

激活 spring 配置文件的一种简单方法是在 属性:

中设置它们
spring.profiles.active=dev,logging

这也可以通过环境变量覆盖。

要进一步广泛阅读,您可以参考文档: https://docs.spring.io/spring/docs/5.0.1.RELEASE/spring-framework-reference/core.html#beans-definition-profiles-java