我有这个组件-类,如果属性accounting.generalServiceConfig.accountPageSize在application.properties中,则应该将日志条目写入日志文件。但是在底部使用这个类时,它不起作用。如果我在方法printAccountPageSize中添加注解**@Bean**并返回例如new 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");
}
}
字符串
2条答案
按热度按时间e4yzc0pl1#
@ConditionalOnProperty用于生成@Bean的@Configuration类。
你可以这样做:
字符串
jm81lzqq2#
在我的例子中,我有完全不同的属性文件名,似乎**@ConditionalOnProperty只能读取application.properties或application.yml**中的属性。我试图添加像@PropetySource这样的注解,仍然不起作用。
一旦我在我的项目中添加了例如application.properties,我的类(不仅是bean,还包括组件、服务等)就可以有条件地完美初始化。但是我不想仅仅因为这个注解就在项目中添加新的属性文件(即application.properties)。如果有人有更好的解决方案,请在下面评论:)否则我必须手动创建对象。