Spring @ConditionalOnProperty - 如何让它工作

时间:2016-10-24 06:02:36

标签: spring-boot

我有这个组件类,如果属性 accounting.generalServiceConfig.accountPageSize 在application.properties中,那么应该将日志条目写入日志文件。 但是这个类在底部是不起作用的。 如果我在方法 printAccountPageSize 中添加注释 @Bean 并返回,例如新的Object()而不是它的工作原理。 是否有可能让它与类一起工作,就像它在底部一样?

@Component
public class ConditionalPropertyChecker extends AbstractService {

    protected final Logger logger = LoggerFactory.getLogger(getClass());

    public ConditionalPropertyChecker() {
    }

    @ConditionalOnProperty(name = "accounting.generalServiceConfig.accountPageSize")
    public void printAccountPageSize() {
        logger
            .info("the accountPageSize is set in application.properties");
    }
}

1 个答案:

答案 0 :(得分:1)

@ConditionalOnProperty用于生成@Bean的@Configuration类。

你可以这样做:

@Component
public class ConditionalPropertyChecker extends AbstractService {

    protected final Logger logger = LoggerFactory.getLogger(getClass());

    public ConditionalPropertyChecker(@Value("${accounting.generalServiceConfig.accountPageSize}") Integer pageSize) {
      if (pageSize) {
        logger.info("the accountPageSize is set in application.properties");
      }
    }
}