【发布时间】:2019-02-04 13:12:04
【问题描述】:
我有一些 application.yml 文件:
main-prop:
sub-prop:
name: test
password: test1
data:
prop1: 1
prop2: 0
和类:
abstract class abscractPropertyHolder {
private String namePattern;
private String categoryPattern;
private String departmentPattern;
private Data data;
}
@Component
@ConfigurationProperties("main-prop")
class ReconfigurationEventFilterConfig extends abscractPropertyHolder {
}
@Data
@Accessors(chain = true)
class Data { // if my class is public - my app run successfully, otherwise fail to start (exception).
private int prop1;
private int prop2;
static DatanewInstanceWithDefaultParameters() {
return new Data().setProp1(1).setProp2(0);
}
}
我有这个例外:
Could not instantiate property type [com.test.Data] to auto-grow nested property path;
nested exception is org.springframework.beans.BeanInstantiationException:
Failed to instantiate [com.test.Data]: Is the constructor accessible?;
nested exception is java.lang.IllegalAccessException:
Class org.springframework.beans.BeanUtils can not access a member of class
com.test.Data with modifiers "public"
所有课程都放在一个包中。我不想公开我的数据类。如何从 application.yml 注入数据?
【问题讨论】:
-
公开课程有什么问题?春天的一切最终都变成了豆子,所以无论如何它都可以访问。
-
@maslan 这是类只能使用一个包,我不想公开它。
-
然后在您的字段上使用 @Value(PROPERTY_NAME) 注释,并制作不公开的 getter 和 setter
标签: java spring spring-boot lombok